2015-11-19 93 views
0

我在Visual Studio中有一個下拉菜單,當做出選擇時,用戶單擊一個按鈕。然後按鈕填充一個GridView。如何在每次點擊時使按鈕重新填充GridView

它可以工作一次,但如果我第二次選擇某個東西並單擊該按鈕,則什麼也不會發生。我該如何刷新或再次執行操作?

按鈕單擊C#:

protected void ButtonChangeEvent_Click(object sender, EventArgs e) 
    { 
     string constr = ConfigurationManager.ConnectionStrings["Events2"].ConnectionString; 
     using (SqlConnection con = new SqlConnection(constr)) 
     { 
      using (SqlCommand cmd = new SqlCommand("spRegistrantsGridView")) 
      { 
       cmd.CommandType = CommandType.StoredProcedure; 
       cmd.Parameters.AddWithValue("@Action", "SELECT"); 
       cmd.Parameters.Add("@EventId", SqlDbType.Int).Value = DropDownListEvent.SelectedValue; 
       using (SqlDataAdapter sda = new SqlDataAdapter()) 
       { 
        cmd.Connection = con; 
        sda.SelectCommand = cmd; 
        using (DataTable dt = new DataTable()) 
        { 
         sda.Fill(dt); 
         GridView1.DataSource = dt; 
         GridView1.DataBind(); 
        } 
       } 
      } 
     } 
    } 
+1

你是什麼意思,什麼都沒有發生?按鈕點擊沒有被觸發,或者網格沒有填滿期望值(根據ddl選擇)? – niksofteng

+0

第一次點擊根據下拉列表中選擇的內容填充數據(比如Event1)。第二次點擊或任何點擊後,網格不會填入差異數據(假設這次我們想看Event2)。 – RockOn

+1

第二次單擊按鈕時,請檢查「DropDownListEvent.SelectedValue」的值。我懷疑它始終需要ddl的第一個值。如果你在'Page_Load'事件處理程序中綁定了ddl,而沒有放入'!IsPostBack'條件檢查,則會發生這種情況。 – niksofteng

回答

2

檢查的DropDownListEvent.SelectedValue當你點擊按鈕第二次價值。我懷疑它始終需要ddl的第一個值。如果您已在Page_Load事件處理程序中綁定了ddl,而未對!IsPostBack進行條件檢查,則會發生這種情況。

protected void Page_Load(object sender, EventArgs e) { 
    if(!IsPostBack) { 
     // bind dropdownlist here 
    } 
} 
+0

謝謝。起初我不確定我需要在裏面放什麼,但是我把我的下拉代碼放在那裏,現在它可以工作。 – RockOn

相關問題