DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

时间:2023-03-09 14:17:17
DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

最初的界面图如图1-1(全选框ID: cb_checkall  DEV控件名称:gcCon ):

DEV控件中GridView中的复选框与CheckBox实现联动的全选功能

要实现的功能如下图(1-2  1-3  1-4)及代码所示:

DEV控件中GridView中的复选框与CheckBox实现联动的全选功能图1-2

DEV控件中GridView中的复选框与CheckBox实现联动的全选功能图1-3

DEV控件中GridView中的复选框与CheckBox实现联动的全选功能图1-4

O(∩_∩)O哈哈~

不要着急哦,看清要实现的功能后我们来上代码啦!!

     //全局变量 0:表格中的数据没有全部选中 1:表格中的数据全部选中
public int iCheckAll=;
private void repositoryItemCheckEdit1_CheckedChanged(object sender, EventArgs e)
{
CheckEdit chkCheck = (sender as CheckEdit);
DataRow dr = gridView1.GetFocusedDataRow();
if (chkCheck.CheckState == CheckState.Checked)
{
dr["IS_CHECK"] = "";
}
else
{
dr["IS_CHECK"] = ""; } //增加全部选择时,全选按钮应该勾选上
DataTable dt = gcCon.DataSource as DataTable; //判断如果GridView中按钮都全选了,把全选按钮也设置为选中状态
DataRow[] drTemp = dt.Select("IS_CHECK=0 OR IS_CHECK IS NULL");
if (drTemp.Length > )
{
//没有全部选中
iCheckAll = ;
cb_checkall.CheckState = CheckState.Unchecked;
}
else
{
iCheckAll = ;
cb_checkall.CheckState = CheckState.Checked;
} }

表格中复选框的CheckedChanged事件

   private void cb_checkall_CheckedChanged(object sender, EventArgs e)
{ DataTable dt = gcCon.DataSource as DataTable; //优化 增加判断dt为null的条件
if (dt != null)
{
if (cb_checkall.Checked == true)
{
foreach (DataRow item in dt.Rows)
{
item["IS_CHECK"] = "";
}
iCheckAll = ;
}
else
{
if (iCheckAll == )
{
//表格中的数据没有全部选中时 设置全选框的的状态为FALSE (觉得这个条件可以不要,可以试下哦O(∩_∩)O哈哈~)
DataRow[] drMM = dt.Select("IS_CHECK=0 OR IS_CHECK IS NULL");
if (drMM.Length > )
{
cb_checkall.Checked = false;
}
}
else if (iCheckAll==)
{ //表格中的数据是全选中状态时,取消全选时,设置表格中的标识为不选中的状态
foreach (DataRow item in dt.Rows)
{
item["IS_CHECK"] = "";
}
} } }
else
{
//判断条件
MessageBox.Show("没有可供选择的数据", "提示!");
cb_checkall.Checked = false;
} }

全选框的CheckedChanged事件