J'ai un contrôle de liste déroulante sur ma page Web. J'ai lié le datatable au contrôle dropdownlist comme suit -
lstDepartment.DataTextField = "DepartmentName";
lstDepartment.DataValueField = "DepartmentID";
lstDepartment.DataSource = dtDept;
lstDepartment.DataBind();
dans l'événement de chargement de page, je souhaite définir la valeur par défaut sur le contrôle de liste déroulante de mon autre champ de table.
comment faire ça?
Après votre 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;
si vous connaissez l'index de l'élément de valeur par défaut, il suffit de
lstDepartment.SelectedIndex = 1;//the second item
ou si vous connaissez la valeur que vous souhaitez définir, il suffit de
lstDepartment.SelectedValue = "the value you want to set";
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);
Et dans votre méthode d'annulation:
lstDepartment.SelectedValue = lstDepartment.Attributes("InitialValue");
Et dans votre méthode de mise à jour:
lstDepartment.Attributes("InitialValue") = lstDepartment.SelectedValue;
En supposant que le contrôle DropDownList dans l'autre table contienne également DepartmentName et DepartmentID:
lstDepartment.ClearSelection();
foreach (var item in lstDepartment.Items)
{
if (item.Value == otherDropDownList.SelectedValue)
{
item.Selected = true;
}
}