c#winform中,DataGridView的选择列(DataGridViewCheckBoxColumn)中,如何实现条件选中?

2024-11-10 11:13:13
推荐回答(4个)
回答1:

5.GridView和CheckBox结合:
效果图:

后台代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class Default5 : System.Web.UI.Page
{

SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=北风贸易;Uid=sa;Pwd=sa";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bind();
}
}
protected void CheckBox2_CheckedChanged(object sender, EventArgs e)
{
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (CheckBox2.Checked == true)
{
cbox.Checked = true;
}
else
{
cbox.Checked = false;
}
}
}
protected void Button2_Click(object sender, EventArgs e)
{
sqlcon = new SqlConnection(strCon);
SqlCommand sqlcom;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
if (cbox.Checked == true)
{
string sqlstr = "delete from table where 身份证号码='" + GridView1.DataKeys[i].Value + "'";
sqlcom = new SqlCommand(sqlstr, sqlcon);
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
}
}
bind();
}
protected void Button1_Click(object sender, EventArgs e)
{
CheckBox2.Checked = false;
for (int i = 0; i <= GridView1.Rows.Count - 1; i++)
{
CheckBox cbox = (CheckBox)GridView1.Rows[i].FindControl("CheckBox1");
cbox.Checked = false;
}
}
public void bind()
{
string sqlstr = "select top 5 * from table ";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds, "tb_Member");
GridView1.DataSource = myds;
GridView1.DataKeyNames = new string[] { "身份证号码" };
GridView1.DataBind();
sqlcon.Close();
}
}
前台主要代码:
CellPadding="3" Font-Size="9pt" BackColor="White" BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px">


















Text="全选" />


具体什么用法你自己在去看看,你把这个换成form程序就可以了,你试试把!

回答2:

private void dgv_CellContentClick(object sender, DataGridViewCellEventArgs e)
{
if ((bool)dgv.Rows[e.RowIndex].Cells["选择"].EditedFormattedValue == true)
{
for (int i = 0; i < dgvDeptName.Rows.Count; i++)
{
if (i != e.RowIndex)
{
if (dgv.Rows[i].Cells["编号"].Value.ToString().StartsWith(dgv.Rows[e.RowIndex].Cells["编号"].Value))
{
dgv.Rows[i].Cells["选择"].Value = true;
}
}
}
}
}
}

回答3:

你可以遍历出所有的复选框,然后截取以0305开头的,如果是以这开头,然后获得这个复选框,Enabled设为不可用.ok?

回答4:

这个是一个通用的取消方法,你自己改改吧:

for (int i = 0; i < dg_TableInfo.Rows.Count; i++)
{
DataGridViewCheckBoxCell checkCell = (DataGridViewCheckBoxCell)dg_TableInfo.Rows[i].Cells["CheckSelect"];

// if (!(bool)checkCell.FormattedValue)
{

if (Flag)
checkCell.Value = 1;
else
{
checkCell.Value = 0;
}

}

}