C# 选择datagridview复选框的解决方案

C# 选择datagridview复选框的解决方案,c#,C#,在将复选框列插入datagridview时,我使用了以下代码 DataGridViewCheckBoxColumn checkBoxColumn=新DataGridViewCheckBoxColumn; dataGridView1.Columns.AddcheckBoxColumn; 当我尝试选择复选框时,它不是selectecd not checked或unchecked, 有更好的方法吗?您只是在gridview中添加了一个列,但在为gridview分配数据源时,您需要这样做。将gridv

在将复选框列插入datagridview时,我使用了以下代码

DataGridViewCheckBoxColumn checkBoxColumn=新DataGridViewCheckBoxColumn; dataGridView1.Columns.AddcheckBoxColumn;

当我尝试选择复选框时,它不是selectecd not checked或unchecked,
有更好的方法吗?

您只是在gridview中添加了一个列,但在为gridview分配数据源时,您需要这样做。将gridview与数据源绑定以访问要选中或取消选中复选框的行

根据评论进行编辑

您可以使用RowDataBound事件在bihnding期间使用网格视图的行实例和数据源数据来启用/禁用复选框

void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
{
  if (e.Row.RowType == DataControlRowType.DataRow)
  {
       CheckBox chk = (CheckBox)e.Row.FindControl("chkBoxID");
       if(DataBinder.Eval(e.Row.DataItem, "datasourceColumnName").ToString() == "someval")
             chk.Enabled = false;
  }
}
你可以用这个


您试图为DataGridViewCheckBoxColumn实现什么?请添加更多详细信息在将数据绑定到gridview后,我添加了此复选框列,在运行时可以看到数据和相应的复选框,但我正在尝试选择一些复选框此复选框从不选中选中选中,它将保持取消选中模式
rotected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        //Check for the row type, which should be data row
        if (e.Row.RowType == DataControlRowType.DataRow)
        {
            //Find the check boxes and assign the values from the data source
            ((CheckBox)e.Row.FindControl("chkSelect")).Checked = Convert.ToBoolean(((DataRowView)e.Row.DataItem)[1]);
            ((CheckBox)e.Row.FindControl("chkAdd")).Checked = Convert.ToBoolean(((DataRowView)e.Row.DataItem)[2]);
            ((CheckBox)e.Row.FindControl("chkEdit")).Checked = Convert.ToBoolean(((DataRowView)e.Row.DataItem)[3]);
            ((CheckBox)e.Row.FindControl("chkAll")).Checked = Convert.ToBoolean(((DataRowView)e.Row.DataItem)[4]);

            //Find the checkboxes and assign the javascript function which should
            //be called when the user clicks the checkboxes.

            ((CheckBox)e.Row.FindControl("chkSelect")).Attributes.Add("onclick", "checkBoxClicked('" +
((CheckBox)e.Row.FindControl("chkSelect")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAdd")).ClientID
+ "','" + ((CheckBox)e.Row.FindControl("chkEdit")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAll")).ClientID + "'," + "'SELECT')");

            ((CheckBox)e.Row.FindControl("chkAdd")).Attributes.Add("onclick", "checkBoxClicked('" +
((CheckBox)e.Row.FindControl("chkSelect")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAdd")).ClientID
+ "','" + ((CheckBox)e.Row.FindControl("chkEdit")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAll")).ClientID + "'," + "'ADD')");

            ((CheckBox)e.Row.FindControl("chkEdit")).Attributes.Add("onclick", "checkBoxClicked('" +
((CheckBox)e.Row.FindControl("chkSelect")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAdd")).ClientID
+ "','" + ((CheckBox)e.Row.FindControl("chkEdit")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAll")).ClientID + "'," + "'EDIT')");

            ((CheckBox)e.Row.FindControl("chkAll")).Attributes.Add("onclick", "checkBoxClicked('" +
((CheckBox)e.Row.FindControl("chkSelect")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAdd")).ClientID
+ "','" + ((CheckBox)e.Row.FindControl("chkEdit")).ClientID + "','" + ((CheckBox)e.Row.FindControl("chkAll")).ClientID + "'," + "'ALL')");

        }
    }