DropDownList在C#ASP.Net中清除选择

时间:2015-06-12 11:09:09

标签: c# asp.net drop-down-menu

我在一个下拉列表中列出了员工姓名。通过选择任何员工,我在gridview中显示员工详细信息。

默认情况下,dropdownlist将第一个项目作为选定项目。因此,当我选择其他项目时,它仅返回第一个索引。 我的代码:

protected void FilterBtn_Click(object sender, EventArgs e)
{
  if (EmployeeList.SelectedIndex > -1)
  {
      sInitQuery = sInitQuery + " WHERE (EmployeeName ='" + EmployeeList.SelectedItem.ToString() + "')";
  }
  if (GlobalCS.OpenConnection() == true)
  {
            GridView1.DataSource = null;
            GridView1.DataBind();    

            MySqlCommand cmd = new MySqlCommand(sInitQuery, GlobalCS.objMyCon);
            MySqlDataReader reader = cmd.ExecuteReader();
            GridView1.DataSource = reader;
            GridView1.DataBind();
            reader.Close();
  }
  GlobalCS.CloseConnection();
  EmployeeList.ClearSelection();
}

2 个答案:

答案 0 :(得分:1)

将你的页面加载代码置于if条件中,这样它只是在第一次加载页面时执行,否则每当回发页面加载被调用并且你的代码将被执行时,这就是它每次被设置为第一项的原因:

 protected void Page_Load(object sender, EventArgs e) 
 {
    if(!Page.IsPostBack)
    { 
       DisplayDatainGrid(); //All data in GridView 
       AddDataDropList(); //Load data in Dropdownlist 
    }
 }

目前每次你的页面加载代码都是exxecuting时不应该发生。

答案 1 :(得分:0)

将EmployeeList.SelectedIndex添加到ViewState。

protected void EmployeeList_SelectedIndexChanged(object sender, EventArgs e)
{
  ViewState.Add("employeeListIndex", EmployeeList.SelectedIndex);
}

然后,在Page_Load中,读取ViewState并将值赋给EmployeeList.SelectedIndex。

void Page_Load(object sender, EventArgs e)
{
  if(ViewState["employeeListIndex"] != null)
  {
    EmployeeList.SelectedIndex = ViewState["employeeListIndex"];
  {
}