Avatar billede ihtezaz Praktikant
26. marts 2006 - 01:50 Der er 7 kommentarer og
1 løsning

Dropdown i Gridview

Hej

Jeg har en Gridview, hvor i jeg skal have placeret noget kunde data. Indenfor kunde data har jeg en kolonne med kundes køn. Denne kolonne vil jeg gerne repræsenter med en dropdown når der skal rettes i det, således at hvis jeg ønsker at rette i gridview, skal der i kolonne køn vises 'M' og 'K' i en dropdownliste.
Avatar billede Slettet bruger
26. marts 2006 - 07:19 #1
Du konverterer kolonnen til en template-kolonne og indsætter en asp:DropDownList i edit item template. Du bruger så databinding syntax til at sætte selected value på dropdownlist så som

SelectedValue='<%# Bind("Kolonne med køn")%>'
Avatar billede ihtezaz Praktikant
26. marts 2006 - 17:48 #2
Som jeg kan se, er der ingen SelectedValue på DropDownList.
Avatar billede Slettet bruger
27. marts 2006 - 07:27 #3
Det har den så - måske ikke i din editor, men den har en. Her er et eksempel taget fra en kørende applikation, hvor du kan se hvordan det skrives. Bemærk ' (enkelt) og ikke " (dobblet) anførselstegn når du skal databinde en attribut på en server kontrol.

<asp:DropDownList ID="_PriceCode" runat="server" cssClass="TextField" SelectedValue='<%# Bind("PriceCode") %>' DataSourceID="_PriceCodesObjectDataSource" DataTextField="Price" DataTextFormatString="{0:#,##0.00}" DataValueField="Id" >
                </asp:DropDownList>
Avatar billede ihtezaz Praktikant
27. marts 2006 - 12:38 #4
Hejsa
Hvad skal jeg sætte som DataSourceID ?

Jeg har sat SelectedValue='<%# Bind("Koen")%>'

Jeg får følgende fejl:
'ddlKoen' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value
Avatar billede Slettet bruger
27. marts 2006 - 14:31 #5
Hvis du binder med DataSource sat til noget og derefter kald til DataBind, så skal DataSourceID ikke sættes. Har du derimod en datasource på din side skal du sætte DataSourceID på GridView til datasourcens ID.
Avatar billede ihtezaz Praktikant
27. marts 2006 - 20:27 #6
Det kan jeg ikke helt få til at fungere, jeg har lavet det på følgende måde:

<asp:DropDownList ID="ddlKoen" runat="server" SelectedValue='<%# Bind("Koen") %>' DataTextField="Koen" DataTextFormatString="{0:#,##0.00}" DataValueField="Koen" >
                </asp:DropDownList>

Jeg databinder min gridview med en datatable.

Jeg får følgende fejl når jeg prøver at redigere :


'ddlKoen' has a SelectedValue which is invalid because it does not exist in the list of items.
Parameter name: value
Avatar billede ihtezaz Praktikant
27. marts 2006 - 21:20 #7
Nu virker det :) men når jeg skal hente værdien ud fra dropdownlisten går det galt,
jeg gør sådan:

GridViewRow row = gvKunde.Rows[index];
DropDownList ddlKoen = ((DropDownList)row.Cells[6].Controls[0]);

jeg får følgende fejl:


Unable to cast object of type 'System.Web.UI.LiteralControl' to type 'System.Web.UI.WebControls.DropDownList'.
Avatar billede ihtezaz Praktikant
27. marts 2006 - 21:29 #8
Så er det på plads, jeg skulle bruge: DropDownList ddlKoen = ((DropDownList)row.Cells[6].Controls[1]);

takker for hjælpen. :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester