Avatar billede karsten_larsen Praktikant
17. januar 2007 - 14:44 Der er 5 kommentarer og
1 løsning

Seleted value i dropdownlist

Jeg har en dropdownlist som får data via databinder

<asp:DropDownList
Datasoruce="ds"
DataTextField="land"
DataValueField="id"
Id="ddl"
runat="server">

strSQL = "SELECT land, id FROM Database"
ds.SelectCommand = "strSQL"
ds.databind()

Men jeg vil gerne have sat select value ud fra data fra en anden database?

f.eks.
strSQL2 = "SELECT landId from Database2 WHere brugerid = 1"

Hvordan gøres det?

??:-) karsten_larsen
Avatar billede lifo Nybegynder
17. januar 2007 - 18:24 #1
ikke testet

SqlCommand command = new SqlCommand();
command.CommandText = strSQL2;
command.Connection = ... din connection

// hent værdien fra databasen
int selectedId = Convert.ToInt32(command.ExecuteScalar());

// løb gennem alle land i DropDown listen
foreach(ListItem item in ddl.Items)
{
// check om den skal være valgt
if(Convert.ToInt32(item.Value) == selectedId)
{
  //sæt den til at være valgt
  item.Selected = true;
  break;
}
}
Avatar billede karsten_larsen Praktikant
18. januar 2007 - 11:42 #2
hmm - har prøvet med eksempel med det fanger ikke dropdownlisten.

        ' ControlValue
        Dim selectedId As Integer = 2


        For Each item As ListItem In DropDownList1.Items
            If Convert.ToInt32(item.Value) = selectedId Then
                item.Selected = True
                ' break
            End If
            ' ControlScript - works?
            DropDownList1.Items.FindByText("Sverige").Selected = "True"
        Next
Avatar billede lifo Nybegynder
18. januar 2007 - 14:23 #3
nu kender jeg ikke vb så godt men skal det ikke være 2 = i linjen
If Convert.ToInt32(item.Value) = selectedId Then
altså
If Convert.ToInt32(item.Value) == selectedId Then
Avatar billede karsten_larsen Praktikant
18. januar 2007 - 18:45 #4
næh, et enkelt = er noki VB.

Der bindes fint lande, men intet selected

<asp:DropDownList
ID="DropDownList1"
DataSourceId="ds"
DataTextField="land"
DataValueField="id"
runat="server"
Style="z-index: 100; left: 246px; position: absolute; top: 166px">
</asp:DropDownList>

og codebehind

int selectedId;
selectedId = Convert.ToInt32(2);
foreach (ListItem item in DropDownList1.Items) {
if (Convert.ToInt32(item.Value) == selectedId) {
  item.Selected = true;
}
}

satte selectedid til 2, så burde anden post være preselected!
Avatar billede kenneth_1975 Nybegynder
20. januar 2007 - 12:00 #5
Her er et eksempel:

string selectSQL = "SELECT id, name FROM Vendor";
            SqlConnection con = new SqlConnection(connectionString);
            SqlCommand cmd = new SqlCommand(selectSQL, con);

            try
            {
                con.Open();

                ddlVendor.DataSource = cmd.ExecuteReader();
                ddlVendor.DataTextField = "name";
                ddlVendor.DataValueField = "id";
               
                ddlVendor.DataBind();
            }
            catch (SqlException err)
            {
                LabelErr.Text = err.Message;
            }
            finally
            {
                con.Close();
            }
Avatar billede karsten_larsen Praktikant
22. januar 2007 - 16:03 #6
Fik det løst ved at knytte en databind til dropdownlisten og så anvende        ddlLand.DataBind()
ddlLand.Items.FindByValue(varLandId).Selected = True
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