如何在asp.net下拉菜单中自动选择

本文关键字:选择 下拉菜单 net asp | 更新日期: 2023-09-27 18:02:21

有一个网页,将招收学生,他们必须填写他们的个人信息,然后保存,但当他们必须修改它出于某种原因,我设置了两个下拉加载所有的州和他们的县,但问题是,我不知道如何自动选择相同的状态比一个保存在数据库中的每个学生,有人能帮我做到这一点吗?下面是我正在处理的代码:

SqlDataReader dr = cmd.ExecuteReader();
 DDOWNState.DataTextField = dr["State"].ToString();
 DDOWNCounty.DataTextField = dr["County"].ToString();

如何在asp.net下拉菜单中自动选择

试试这个

DDOWNState.DataTextField = dr["State"].ToString();
DDOWNState.DataBind();
DDOWNCounty.DataTextField = dr["County"].ToString();
DDOWNCounty.DataBind();

使用以下代码。它会帮助你的。当你使用绑定数据源(DataTable,DataSet等)到下拉菜单或任何其他服务器控件时,你应该使用Datasource和Databind属性,如下所示。

SqlDataReader dr = cmd.ExecuteReader();
DDOWNState.DataSource=dr;
DDOWNState.DataTextField = dr["State"].ToString();
DDOWNState.DataBind();
DDOWNCounty.DataSource=dr;
DDOWNCounty.DataTextField = dr["County"].ToString();
DDOWNCounty.DataSource();

你只需要检查学生的状态是否与你的数据库的状态相匹配,如代码

所示
// Let Say We have Student's Current state is USA
string curruntState = "USA";
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
    if (curruntState.ToUpper() == reader["State"].ToString().ToUpper())
    {
        ListItem item = new ListItem(reader["State"].ToString(), reader["StateID"].ToString());
        item.Selected = true;
        ddStates.Items.Add(item);
    }
    else
    {
        ListItem item = new ListItem(reader["State"].ToString(), reader["StateID"].ToString());
        item.Selected = false;
        ddStates.Items.Add(item);
    }
}
ddStates.DataBind();
reader.Close();

我想你已经将DropDownList与它的项目绑定了。现在,您需要在绑定代码之后执行类似的操作。

DDOWNState.ClearSelection(); //You need to clear first.
DDOWNState.Items.FindByText(dr["State"].ToString()).Selected = true;

ClearSelection()函数需要在选择dropdownlist中的任何其他项之前运行,因为dropdownlist一次只允许选择一个项。请注意,它不会从dropdownlist中删除项,而只是清除选择,以便您可以选择任何其他ListItem

如果您使用FindByValue()函数以相同的方式在数据库中保存值,您也可以这样做。这肯定对你有帮助。

对于依赖于其他选项的自动选择下拉列表,您只需添加

<asp:DropDownList ID-"DropDownList1" runat="server" onSelectedIndexChanged-"DropDownList1 SelectedIndexChanged" AutoPostBack="true">

设置autopostback属性="true"

protected void Page_Load(object sender, EventArgs e)
if (DropDownListi.selectedvalue=="1")
{
DropDownList2.selectedValue = "1";
}