如何防止DataGridView列增加
本文关键字:增加 DataGridView 何防止 | 更新日期: 2023-09-27 18:06:52
我有一个DataGridView。我将DataGridBiew与数据源绑定,如下所示…
private void form_load(object sender, eventargs e)
{
var members = xyz.members(..
select new {
blah....
blahh...
});
memberbindingsource.datasource = members
membergridview1.datasource = memberbindingsource;
// at here i have added button column to membergridview 1
// like this....
DataGridViewButtonColumn column = new DataGridViewButtonColumn();
membergridview1.Columns.Add(column);
column.FlatStyle = FlatStyle.Standard;
column.DefaultCellStyle.BackColor = Color.Green;
column.Text = "ADD";
column.HeaderText = "Add";
column.UseColumnTextForButtonValue = true;
column.Name = "btnadd";
这在表单加载时工作得很好但是我在某个地方检查组合框中的条件,像这样
if(combobox1.text == "abc")
{
then i have to loaded the grid view again
like this ...
var members = xyz.members(..
select new {
blah....
blahh...
});
memberbindingsource.datasource = members
membergridview1.datasource = memberbindingsource;
at here i have added button column to membergridview 1
like this....
DataGridViewButtonColumn column = new DataGridViewButtonColumn();
membergridview1.Columns.Add(column);
column.FlatStyle = FlatStyle.Standard;
column.DefaultCellStyle.BackColor = Color.Green;
column.Text = "ADD";
column.HeaderText = "Add";
column.UseColumnTextForButtonValue = true;
column.Name = "btnadd";
}
当他第一次选择combobox1文本"abc"时,datagridview显示了按钮列,这很好…
当我检查第一个条件(像这个combobox1.text == "abc"
)的DataGridView显示细节ok,但如果我再次检查相同的条件,它将再次添加按钮列。
当我一次又一次地检查相同的条件时,我想只显示一个包含成员数据的按钮列。
我怎么能防止这种情况-不增加按钮列一次又一次?
这是因为每次加载页面时都要添加此列。因此,无论这是一个新调用还是一个回发调用,都会添加这一列。要使此工作正确,请将在if条件
后面添加列的代码片段括起来if (!IsPostBack)
{
//add your column add code snippet here
}
那么你的代码看起来就像这样
if (!IsPostBack)
{
DataGridViewButtonColumn column = new DataGridViewButtonColumn();
membergridview1.Columns.Add(column);
column.FlatStyle = FlatStyle.Standard;
column.DefaultCellStyle.BackColor = Color.Green;
column.Text = "ADD";
column.HeaderText = "Add";
column.UseColumnTextForButtonValue = true;
column.Name = "btnadd";
}