[英]How to unmark header checkbox on dataGridView after refreshing the data c#?
[英]How to reset datagridview having checkbox after filter is applied in c#
我是C#编码的新手,对此感到震惊。
我有一个带有DataGridViewCheckBoxColumn列的DataGridView,该列数据绑定到列表。
在将过滤器应用于datagridview之后,过滤器可以正常工作,但是如果我使用复选框检查该行,我将无法保留它,因为在单击后,我再次加载了datagridview,这松开了复选框的选择,并且再次创建了CheckBoxColumn。
我需要保留带/不带过滤器的复选框选择,并且当我重置datagridview时,checkboxcolumn应该出现一次
public AddressReport1()
{
InitializeComponent();
loadData();//load gridview
}
public void loadData()
{
if (conn.State == ConnectionState.Closed)
conn.Open();
SqlCommand cmdSelect = new SqlCommand(@"SELECT ContactId,ReceiverName,City,Address,ContactNo1,ContactNo2,GSTNumber,State FROM tbl_contacts", conn);
SqlDataAdapter da = new SqlDataAdapter(cmdSelect);
DataTable dt = new DataTable();
da.Fill(dt);
dgvAddressReport1.DataSource = dt;
//create checkbox column dynamically in datagridview
DataGridViewCheckBoxColumn select = new DataGridViewCheckBoxColumn();
select.Name = "select";
select.HeaderText = "select";
select.Width = 50;
select.ReadOnly = false;
select.FillWeight = 10; //if the datagridview is resized (on form resize) the checkbox won't take up too much; value is relative to the other columns' fill values
//add checkbox column in first row of gridview
dgvAddressReport1.Columns.Insert(0, select);
int dgvindex = dgvAddressReport1.Columns["select"].Index;
MessageBox.Show(dgvindex.ToString());
conn.Close();
}
private void btnBack_Click_1(object sender, EventArgs e)
{
loadData();[enter image description here][1]
}
首先,您可以在loadData方法之外(可能在构造函数中)创建DataGridViewCheckBoxColumn 。 因此它将仅创建一次。
要保留复选框的选择,可以在数据表或数据库中添加布尔字段。 每次单击一行时,只需更新该标志即可。
当您具有DataGridViewCheckBoxColumn时 ,在重新绑定数据源时,将根据布尔标志自动选中或取消选中此列
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.