2011-11-01 15 views
8

Mam kontrolkę listy rozwijanej na mojej stronie internetowej. Mam powiązać DataTable do kontroli DropdownList następująco -jak ustawić domyślną wartość kontrolki listy rozwijanej?

lstDepartment.DataTextField = "DepartmentName"; 
    lstDepartment.DataValueField = "DepartmentID"; 
    lstDepartment.DataSource = dtDept; 
    lstDepartment.DataBind(); 

w przypadku obciążenia strona Chcę ustawić domyślną wartość rozwijanej listy kontroli z moim innym polu tabeli.

jak to zrobić?

Odpowiedz

0

Zakładając, że kontrola DropDownList w drugiej tabeli zawiera również DepartmentName i DepartmentID:

lstDepartment.ClearSelection(); 

foreach (var item in lstDepartment.Items) 
{ 
    if (item.Value == otherDropDownList.SelectedValue) 
    { 
    item.Selected = true; 
    } 
}
22

Po DataBind():

lstDepartment.SelectedIndex = 0; //first item 

or 

lstDepartment.SelectedValue = "Yourvalue" 

or 
//add error checking, just an example, FindByValue may return null 
lstDepartment.Items.FindByValue("Yourvalue").Selected = true; 

or 
//add error checking, just an example, FindByText may return null 
lstDepartment.Items.FindByText("Yourvalue").Selected = true; 
+0

jego pracy dokładnie to, co chcę. Jeśli wartość nie jest obecna, chcę ustawić pusty rekord. jak to zrobić? – Priyanka

+1

lstDepartment.Items.Insert (0, new ListItem ("", "")); –

+1

Mam powiązać datatable do listy rozwijanej. Użyłem twojego kodu do ustawienia wartości domyślnej na pustą. ale potem także pokazuje 0-ty rekord z tabeli. – Priyanka

4

jeśli wiesz indeks pozycji domyślnej wartości, po prostu

lstDepartment.SelectedIndex = 1;//the second item 

lub jeśli znasz wartość, którą chcesz ustawić, wystarczy

lstDepartment.SelectedValue = "the value you want to set"; 
0
lstDepartment.DataTextField = "DepartmentName"; 
lstDepartment.DataValueField = "DepartmentID"; 
lstDepartment.DataSource = dtDept; 
lstDepartment.DataBind(); 
'Set the initial value: 
lstDepartment.SelectedValue = depID; 
lstDepartment.Attributes.Remove("InitialValue"); 
lstDepartment.Attributes.Add("InitialValue", depID); 

I w unieważnieniu metody:

lstDepartment.SelectedValue = lstDepartment.Attributes("InitialValue"); 

A w sposobie aktualizacji:

lstDepartment.Attributes("InitialValue") = lstDepartment.SelectedValue; 
Powiązane problemy