Avatar billede kallekk Nybegynder
02. juli 2004 - 12:45 Der er 1 kommentar og
1 løsning

tilføje et item til en dropdown list som allerede har værdier

Hej

Jeg har oprettet en dropdownlist, og har fyldt den med værdier fra en database. Rent konkret har jeg hentet de ønskede værdier fra databasen ind i et dataset, som består af en samling tabeller, og så sat dropdown kontrollens "data source" til at være datasetet. Dette gør at dropdownlisten bliver fyldt med indholdet fra en af tabellerne i datasettet. Det jeg ønsker er at tilføje et yderligerer "item" til dropdownboksen, og sætte den til at være den første værdi der bliver vist i dropdown boksen når siden initaliseres. På denne måde ønsker jeg at dropdownboksen viser "vælg Central" som det første, og at "Bælg central" har værdien null, således at der bliver sendt en null værdi afsted, hvis dette item er valgt.
Her er den kode jeg benytter:

  this.drdCentral.DataSource=
  Guicontrol.filldropd().Tables"Table4"];
                      this.drdCentral.DataTextField="lokationsnavn";
this.drdCentral.DataValueField="lokationID";
this.drdCentral.DataBind();


Håber at spørgsmålet bare er nogenlunde til at forstå
Avatar billede wittnezz Nybegynder
02. juli 2004 - 13:01 #1
Her er lidt kode fra vores (nu droppede) .net baserede cms i-update
sideListe er en dropdown list. I stedet for at bruge DataBind har jeg indsat elementerne selv. (Kan ikke præcist huske hvorfor...)

Hvis jeg efterfølgende vil indsætte flere punkter bruger jeg bare:

lItem = new ListItem(reader[info.ContentName].ToString(), reader[info.ContentId].ToString());
sideListe.Items.Add(lItem);




if (!Page.IsPostBack)
{
    sideListe.Items.Clear();
    if (dbConn.selectDriver())
    {
        conn = dbConn.Connection;
        conn.Open();
        string sql = "";

        sql = "SELECT * FROM " + info.ContentTable;

        try
        {
            IDbCommand cmd = conn.CreateCommand();
            cmd.CommandText = sql;
            reader = cmd.ExecuteReader();
            while (reader.Read())
            {
                lItem = new ListItem(reader[info.ContentName].ToString(), reader[info.ContentId].ToString());
                sideListe.Items.Add(lItem);
            }
            reader.Close();
        }
        catch(Exception ex)
        {
            Response.Write(ex.ToString());
            Response.Write("<br><br>Sql:<br><br>" + sql);
        }

        conn.Close();
    }
}
Avatar billede janus_007 Nybegynder
20. juli 2004 - 23:37 #2
Jeg formoder du bruger en select af en art. Du kan derfor bruge en union sådan her:

select 'Vælg central' as lokationsnavn, null as lokationID
union
select lokationsnavn, lokationID .... din originale select

På den måde behøver du ikke alle fixfaxerier førend du binder og altså stadig opretholder en fin performance:O)
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
Kurser inden for grundlæggende programmering

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