DropDownList   otázka

ASP.NET WebForms

Ahoj mám takovej problém DropListem, když si FormView pro vkládaní příspěvku a chci aby se tam autor nemusel psát do TextBoxu. Tak používá DropList, kterej má zdroj data z databáze. Jak dostanu z DropListu Id toho člena abych to id mohl uložit do tabulky příspěvku. Nevíte někdo? S Asp.net nemám moc zkušenosti ještě se to učím.Díky za radu.

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

Možná by chtělo také napsat jak data do DB ukládáte,takto je až moc obecně položený dotaz,kterému by odpovídala odpověď minimálně v délce článku.

Data ukládáte přes SqlDataSource(nebo jiný DataSource) nebo v code-behind?

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

Ve FormView jak je insertCommand. Jestli to přesně nejak jde?

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

Nadefinujte si v rámci SqlDataSource ControlParameters:

<asp:ControlParameter  ControlID="DropDownListName" PropertyName="SelectedValue" Name="xxx"/>

Samozřejmě musíte mít správně napsaný InsertCommand.Ale to už by bylo hodně začátečnické a hodné spíše naučení se základů

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

A co když mám DropList v insterItemTemplate to mi to ten DropDownList nenajde?

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

Nevidím důvod proč by ho neměl najít - vlastně ani netuším proč se na to ptáte.O příspěvek výše jsem Vám napsal co je v podstatě třeba.Pokud nevíte co a jak.tak pošlete kód a já se ho pokusim opravit-pokud bude čas a nálada.

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

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
        SelectCommand="SELECT [nazev], [text], [id_clena] FROM [Novinky]" 
        InsertCommand="INSERT INTO Novinky(nazev, text, id_clena) VALUES (@nazev, @text, @id_clena)" >
        <InsertParameters>
            <asp:Parameter Name="nazev"  />
            <asp:Parameter Name="text" />
            <asp:ControlParameter ControlID="DropDownList1" PropertyName="SelectedValue" Name="id_clena" Type="String"/>            
        </InsertParameters>
    </asp:SqlDataSource>
    <asp:SqlDataSource ID="SqlDataSource2" runat="server" 
        ConnectionString="<%$ ConnectionStrings:ConnectionString %>" 
        SelectCommand="SELECT id_Clena, jmeno+' '+prijmeni AS autor FROM Clenove" >
    </asp:SqlDataSource>

    
    <asp:FormView ID="FormView1" runat="server" DataSourceID="SqlDataSource1" 
        DefaultMode="Insert" >
        <EditItemTemplate>
            nazev:
            <asp:TextBox ID="nazevTextBox" runat="server" Text='<%# Bind("nazev") %>' />
            <br />
            text:
            <asp:TextBox ID="textTextBox" runat="server" 
                Text='<%# Bind("text") %>' />
            <br />          
            <asp:LinkButton ID="UpdateButton" runat="server" CausesValidation="True" 
                CommandName="Update" Text="Update" />
            &nbsp;<asp:LinkButton ID="UpdateCancelButton" runat="server" 
                CausesValidation="False" CommandName="Cancel" Text="Cancel" />
        </EditItemTemplate>
        <InsertItemTemplate>
            nazev:
            <asp:TextBox ID="nazevTextBox" runat="server" Text='<%# Bind("nazev") %>'  />
            <br />
            <asp:DropDownList ID="DropDownList1" runat="server" 
                DataSourceID="SqlDataSource2" DataTextField="autor" 
                  AppendDataBoundItems="True" DataValueField="id_Clena">
                <asp:ListItem  />           
      
            </asp:DropDownList>            
            <br />
            text:
            <asp:TextBox ID="textTextBox" runat="server" Text='<%# Bind("text") %>'
                 />
            <br />
            
                       
            <asp:Button ID="InsertButton" runat="server" CausesValidation="True" 
                CommandName="Insert" Text="Insert" />
            &nbsp;<asp:Button ID="InsertCancelButton" runat="server" 
                CausesValidation="False" CommandName="Cancel" Text="Cancel" />
        </InsertItemTemplate>

    </asp:FormView>

Právě, že mi to psalo, že ho nemůže najít a když jsem to vyhodil mimo formView tak to najde.

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

Aha,ted už si vzpomínám a uvědomuji,že pokud je prvek uvnitř FormView tak je třeba použít <asp:Parameter> a ne <asp:ControlParameter>

Omlouvám se...

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

A jak se veme z toho Parametru?

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

Nefunguje?

<asp:Parameter Name=id_clena Type=String />

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

ne nefunguje

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

.

 <asp:DropDownList ID="DropDownList1" runat="server" 
                DataSourceID="SqlDataSource2" DataTextField="autor" 
                  AppendDataBoundItems="True" DataValueField="id_Clena" SelectedValue='<%# Eval ("id_Clena") %>' />  

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

a tak to funguje ale když se to měl předtím takhle napsaný tak to nefajčilo asi sem tam něco blbě napsal díky.

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

Zaprvé tam nesmí být Eval, ale Bind, jinak to bude fungovat jen jedním směrem (v SELECTu) a zpátky z komponenty do parametru se to už nedostane.

Matoucí je, že Visual Studiu bůhvíproč v IntelliSense tu vlastnost SelectedValue nenabízí (je schválně skrytá). Nikdo mi uspokojivě nevysvětlil, proč to tak je, ale spoustu lidí to plete.

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

Asi sem tam měl předtím napsáno SelectValue proto mi to nefungovalo než sem dal ten příspěvek.

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