如何防止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,但如果我再次检查相同的条件,它将再次添加按钮列。

当我一次又一次地检查相同的条件时,我想只显示一个包含成员数据的按钮列。

我怎么能防止这种情况-不增加按钮列一次又一次?

如何防止DataGridView列增加

这是因为每次加载页面时都要添加此列。因此,无论这是一个新调用还是一个回发调用,都会添加这一列。要使此工作正确,请将在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";
    }