Anu
Anu

Reputation: 925

DropDownList Clear Selection in C# ASP.Net

I have listed employee names in one Dropdownlist. And by selecting any employee i am displaying employee details in gridview from database.

By default, dropdownlist have first item as selected item.So when i select another items it returns the first index only. My Code:

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

Upvotes: 0

Views: 4595

Answers (2)

Sir_Fleetwood
Sir_Fleetwood

Reputation: 46

Add EmployeeList.SelectedIndex to the ViewState.

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

Then, in Page_Load, read the ViewState and assign the value to EmployeeList.SelectedIndex.

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

Upvotes: 0

Ehsan Sajjad
Ehsan Sajjad

Reputation: 62488

Put your page load code in if condition so it is just executed first time when page is loaded, other wise whenever post back happens page load gets called and your code will get executed which is the reason it gets set to first item everytime:

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

Currently every time your pageload code is exxecuting which should not happen.

Upvotes: 1

Related Questions