[英]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.