2011-08-25 5 views
0

DataGridView가 있습니다. 나는이 양식로드에서 잘 작동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"; 

다음과 같이 데이터 소스와 DataGridBiew을 ... 바인딩하고 있지만, 먼저 콤보 상자를 선택할 때 어딘가에이

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

     } 

같은 콤보 상자에 조건을 확인 텍스트 "abc"datagridview는 버튼 열을 잘 보여주었습니다.

과 같은 첫 번째 조건을 확인하면 DataGridView의 세부 정보가 표시됩니다.하지만 다시 동일한 조건을 확인하면 다시 부 트가 추가됩니다. 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 ....에서 사용할 수있는 웹 응용 프로그램에서 사용할 수 있다고 들었습니다 –

+0

.... 나는 그것을 웹 페이지로 가정합니다. – Gaurav

관련 문제