如何将默认值设置为下拉列表控件?

14

我在网页上有一个下拉列表控件。我已经将数据表绑定到下拉列表控件上,方法如下 -

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

在页面加载事件中,我想将下拉列表控件的默认值设为另一个表字段中的值。

如何实现?

4个回答

30

在调用 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;

它正好按照我的要求工作。如果值不存在,则我想将其设置为空记录。如何做到这一点? - Priyanka
1
lstDepartment.Items.Insert(0, new ListItem("", "")); lstDepartment表示一个下拉列表框控件,该代码将在该控件的第一个位置插入一个空白项。 - rick schott
1
我已经将数据表绑定到下拉列表中。我使用了您的代码将默认值设置为空白。但是它仍然显示表中的第0条记录。 - Priyanka
在我的情况下,它也不起作用。我有ID和名称,对于selectedindex = -1它不起作用,对于selectedvalue它会给出错误,说我的值不存在。该怎么办? - choudhury smrutiranjan parida

5

如果您知道默认值的项目索引,只需

lstDepartment.SelectedIndex = 1;//the second item

如果您知道要设置的值,只需

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);

而在你的取消方法中:

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

在你的更新方法中:

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

0
假设另一个表中的DropDownList控件也包含DepartmentName和DepartmentID:
lstDepartment.ClearSelection();

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接