Avatar billede bsp_andreas Nybegynder
06. oktober 2004 - 13:06 Der er 8 kommentarer

dropdownlist i datagrid + vis selected med data fra DB

Hej.

Jeg har med reference til dette spm.: http://eksperten.dk/spm/516833 prøvet at udvikle noget lignende.

Jeg skal i mit datagrid have vist en dropdownlist, som indeholder 3 valgmuligheder. Datagriddet genereres selvf. ud fra et db-kald som binder et dataset til griddet. Nu skal jeg bare have den til at vise det korrekte dropdown-item, som findes i databasen (som tekst).

Jeg har noget lignende dette:

private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
string[] currencyCodes= {"BSP Støbt","Spraylak","Købetast"};
DropDownList ddList = null;

if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{   
ddList = (DropDownList)e.Item.FindControl("DropDownList1");
ddList.DataSource = currencyCodes;
ddList.DataBind();

// dette forstår jeg ikke - og det virker ikke :)
ddList.SelectedIndex = ddList.Items.IndexOf(ddList.Items.FindByText(((DataRowView)e.Item.DataItem).Row["Type"].ToString()));
}
}
----------------------
<asp:datagrid id="DataGrid1" runat="server" AllowSorting="false" AutoGenerateColumns="false">
<Columns>
  <asp:TemplateColumn HeaderText="Modul/Type">
    <ItemStyle Width="20%"></ItemStyle>
    <ItemTemplate>
        <asp:TextBox id="modul_type" Text='<%# DataBinder.Eval(Container.DataItem, "Modul_type")%>' Runat="server" Width="100%" BorderStyle="None">
        </asp:TextBox>
    </ItemTemplate>
  </asp:TemplateColumn>
...slut...


Hvordan får jeg sat det selectede dropdown-item til det som findes i db'en???
Avatar billede thrytter Nybegynder
06. oktober 2004 - 14:04 #1
Du mangler tilsyneladende at tilføje en DropDownlist med navnet DropDownList1 i dit DataGrid.

Prøv:
  ddList.Items.FindByValue(((DataRowView)e.Item.DataItem).Row["Type"].ToString()).Selected = True;

evt. også
  ddList.SelectedItem.Selected = False;
Avatar billede bsp_andreas Nybegynder
06. oktober 2004 - 14:30 #2
hov - mht. dropdownlisten, så er den der. Jeg har bare pastet noget forkert kode.

Jeg prøver lige det andet og vender tilbage
Avatar billede bsp_andreas Nybegynder
06. oktober 2004 - 14:44 #3
hmm desværre. Det giver en: Object reference not set to an instance of an object på den linie du skrev.
Avatar billede snepnet Nybegynder
06. oktober 2004 - 19:00 #4
Det nemmeste er næsten at du gør det i din template.... en template med en dropdownlist (hvor den aktuelle værdi er valgt) kunne se sådan her ud :

<EditItemTemplate>
  <asp:DropDownList runat="server" id="lstCategories"
        DataSource='<%# SomeValues%>'
        SelectedIndex='<%# GetSelectedIndex(Container.DataItem("CurrencyCode")) %>' />
</EditItemTemplate>

Ovenstående kræver så at du f.eks. har sådan et par her :

private string[] _currencyCodes = {"DKK","USD","SEK"};

protected string[] CurrencyCodes
{
  get{return _currencyCodes;}
}

Jeg har ikke set den kode du rigtig ville have postet, men hvis du har en currencycode-værdimængde - har du nok også et datagrundlag med en CurrencyCode, og dropdownlisten skulle så gerne rette ind efter den (hvis der i det felt står noget der også står i dropdownlisten), ved denne kode :

        SelectedIndex='<%# GetSelectedIndex(Container.DataItem("CurrencyCode")) %>' />

kan du følge det ?

mvh
Avatar billede snepnet Nybegynder
06. oktober 2004 - 19:01 #5
og får god ro og ordens skyld... ville det nok være en fordel hvis du gave listen et fornuftigt navn der lugter lidt af den forventede værdimængde :o)

<EditItemTemplate>
  <asp:DropDownList runat="server" id="ddCurrencyCodes"
        DataSource='<%# SomeValues%>'
        SelectedIndex='<%# GetSelectedIndex(Container.DataItem("CurrencyCode")) %>' />
</EditItemTemplate>
Avatar billede snepnet Nybegynder
16. oktober 2004 - 23:49 #6
hej andreas - hvordan går det her ?
mvh
Avatar billede snepnet Nybegynder
19. oktober 2004 - 18:20 #7
hej anreas :o)
jeg smider lige et svar her, hvis du har fået det til at spille og har kunnet bruge det jeg skrev... eller bare råb op :o)
håber livet er godt !
mvh
Avatar billede snepnet Nybegynder
19. oktober 2004 - 18:28 #8
hov for.... hva faen bilder jeg mig ind ?!?
andreas>> du må lige få et svar fra thrytter, hvis du vil lukke :o)

undskyld thrytter... var lige lidt hurtigt der :o(

mvh
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