2015-06-12 87 views
0

我在一個Dropdownlist中列出了員工姓名。通過選擇任何員工,我將在數據庫的gridview中顯示員工詳細信息。C#ASP.Net中的DropDownList清除選擇

默認情況下,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(); 
} 
+0

你能不能展示你的頁面載入,問題是在那裏我想,你是否在下拉菜單中調用了'if(!Page.IsPostBack)''? –

+0

protected void Page_Load(object sender,EventArgs e) DisplayDatainGrid(); // GridView中的所有數據 AddDataDropList(); //在Dropdownlist中加載數據 } – Anu

+0

設計建議:您不需要按鈕。您可以直接在DropDownList.SelectedIndexChanged()事件中編寫此代碼。 –

回答

1

把你的頁面加載代碼,如果條件所以它只是執行時加載頁面時,其他明智的第一次,每當回傳發生頁面加載時調用和你的代碼得到執行這是因爲它每次都被設置爲第一項:

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

當前每當您的頁面加載代碼正在執行時,都不應該發生。

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"]; 
    { 
}