2011-08-25 136 views
0

我有一个DataGridView。我绑定与如下数据源的DataGridBiew ...如何防止DataGridView列增加

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"; 

能正常工作的形式负载,但地方我检查的条件在ComboBox这样

  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中显示按钮栏多数民众赞成罚款...

当我检查的第一conditon(这样combobox1.text == "abc")在DataGridView显示细节确定,但如果我再次检查相同的条件下它会再次加butto n列。

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

我该如何防止这种情况 - 一次又一次增加按钮列?

+0

所以选择从组合框中选择一个项目应该添加新的专栏,但只有当它不存在?还是你问完全其他的东西? – hometoast

+0

亚..我必须检查这样的条件多达6(条件)所以..每次我必须填充datagridview有没有办法我们可以对绑定源的操作我的意思是我可以使用相同的绑定源为6(检查)那样... –

+2

这很混乱。为什么每当组合框文本=“abc”时再次添加列?只要删除重新添加列的代码,如果你不想一遍又一遍地添加。 – kevev22

回答

0

这是因为每次加载页面时,都会添加此列。所以不管这是新的呼叫还是后面的呼叫,都会添加此列。 为了得到这个工作的正确封闭的代码片段,在下面添加列,如果条件

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"; 
    } 
+0

我不知道..是否回发财产是可用的winforms ....我听说它是​​可用的webapps –

+0

错过了....我假设它的网页。 – Gaurav