2012-07-09 35 views
0

我想要在GridView中获得CheckBox的值。我可以使用事件RowDataBound来绑定GridView。但在ButtonClick事件中,即使我检查了CheckBoxCheckBox的值也始终为false。如何使用C#获取gridview复选框的值?

代码背后:

protected void GridView1_RowDatabound(object sender, GridViewRowEventArgs e) 
    { 

     if (e.Row.RowType == DataControlRowType.DataRow) 
     { 
      DropDownList dddate = (DropDownList)e.Row.FindControl("DdlDate"); 
      DropDownList ddYear = (DropDownList)e.Row.FindControl("DdlYear"); 
      for (int i = System.DateTime.Now.Year; i > (System.DateTime.Now.Year) - 100; i--) 
       ddYear.Items.Add(Convert.ToString(i)); 
      for (int i = 1; i < 32; i++) 
       dddate.Items.Add(Convert.ToString(i)); 
     } 
    } 
    protected void btnRetrieveCheck_Click(object sender, EventArgs e) 
    { 
     foreach (GridViewRow row in GridView1.Rows) 
     { 
      CheckBox cb = (CheckBox)row.FindControl("chkSel"); 
      if (cb != null && cb.Checked) 
      { 

       DropDownList dddate = (DropDownList)row.FindControl("DdlDate");    //Bind data to the GridView control. 
       DropDownList ddYear = (DropDownList)row.FindControl("DdlYear"); 
       DropDownList ddmonth = (DropDownList)row.FindControl("DdlMonth"); 

      } 
     } 
    } 
+0

是您的'chkSel'动态创建或设计时间? – dotNETbeginner 2012-07-09 08:46:14

回答

0

你应该挂接到该复选框,而不是单击事件经过事件。

你的问题不是很清楚。你可以张贴更多的代码吗?例如,什么是btnRetrieveCheck - 它是实际的复选框吗?请使用您的XAML更新问题,以便我们可以看到有什么绑定。

+0

我有一个gridview有几列和一个包含复选框的templatefield。当用户点击复选框时,我想用1(如果选中)或0(如果未选中)更新数据库。这就是为什么我使用btnRetrieveCheck – Parthi 2012-07-09 06:56:32

+0

你可以更新你的问题,包括DataGrid的xaml。我还是不明白。另外我的评论重新EndEdit适用于WinForms,所以我会删除它。 – Michael 2012-07-09 07:08:33