Hodnota z DropDownList jako parametr SELECTu   zodpovězená otázka

ASP.NET WebForms, SQL

Zdravím dělám rezervaci vstupenek jako projekt v základech .NET do školy.

Co bych potřeboval udělat: dva propojené DropDownListy.

První DDL1:

<asp:DropDownList ID="DDL1" runat="server" 
            DataSourceID="SqlDataSource1" DataTextField="CISLO_STOLU" 
            DataValueField="CISLO_STOLU" AutoPostBack="True" ToolTip="Vyberte si tůl.">

DDL1 načítá z datábáze pomocí:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
        ConnectionString="<%$ ConnectionStrings:rezervaceConnectionString %>" 
        SelectCommand="SELECT DISTINCT [CISLO_STOLU] FROM [T_ZIDLE]"></asp:SqlDataSource>

To mi do DDL1 vloží čísla stolu. A teď bych potřeboval aby si uživatel vybral např. stůl č.3 a aby se mu v druhém DDL2 vytvořil seznam židlé pouze od stolu 3.

<asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:rezervaceConnectionString %>" 
        SelectCommand="SELECT [ID_ZIDLE] FROM [T_ZIDLE] WHERE VOLNO = 1 AND WHERE CISLO_STOLU = ('''proměnná z DDL1''')">
        <SelectParameters> 

Akorát nevím jak předat vybranou hodnoutu z DDL1 do "SelectCommand"

Cokoliv upřesním a za každou radu velice děkuji.

Marcel

nahlásit spamnahlásit spam 0 odpovědětodpovědět

No postup by měl být následující.

1)Při prvním načtení stránky by jste měl do DDL1 načíst z databáze všechny stoly, které v databázi jsou.

2)Při definici výpisu židlí vytvoříte klasický SqlDataSource, kterému v Configurate DataSource určíte pomocí "WHERE..." ID daného stolu, operátor použijete = pro porovnání rovnosti a v Source vyberete Control(tím se dostanete na vámi vytoužený ovládací prvek, podle kterého se ma sekece řídit) ve vašem případě to bude DDL1(dostanete na výběr ze všech možných prvků, která na stránce již máte přidané) a celou tuto podmínku přidáte pomocí Add.

Tímto docílité toho, aby data v DDL2 byla vždy generována v závislosti na tom, co je zrovna označené v DDL1. Aby vše fungovalo jak má, je potřeba ještě prvku DDL1 zapnout vlastnost AutoPostBack, aby stránka reagovala na provedenou změnu výběru v DDL1 a naplnila DDL2 novýma datama podle aktuálně zvoleného stolu.

No snad jsem to napsal dost podrobně. V případě nejasností napište, kde je problém.

PS: Myslím si ale, že kdyby jste si prošel seriály o ASP.NET od pana Hercega, určitě by jste tam podobný způsob řešení našel.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Děkuji mockrát, toto můj problém vyřešilo.

Já jsem si procházel ty tutoriály i na MSTV ale bohužel jsem to asi přehlédnul. Ale teď když vím co bych měl hledat tak bych to určitě našel.

Návod jste napsal na výbornou. Postupoval jsem přeně podle toho a po dokončení vše funguje tak jak má.

Ještě jednou děkuji.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback