2013-04-10 3 views
0

Visual Studio 및 VB.net을 사용하여 데이터로 채워진 gridview가 있고 드롭 다운의 텍스트 값을 기반으로 특정 열을 숨기고 적절한 것으로 표시하고 싶습니다.VB.Net 드롭 다운 텍스트 선택을 기반으로 특정 gridview 열을 숨기기

드롭 다운이 그리드는 세 개의 열 KS2 영어, KS2 수학 및 KS2 평균을 포함하여 열이 포함

주제 목록 (영어, 수학 과학 등)와 SQL을 통해 채워집니다.

드롭 다운에서 영어를 선택하면 KS2 수학과 KS2 평균 열을 숨기고 싶습니다.

수학을 선택하면 KS2 영어 및 KS2 평균 열을 숨기고 싶습니다.

마지막으로 다른 제목을 선택하면 KS2 영어 및 KS2 수학 열을 숨기고 싶습니다.

나는 gridview ok를 이미 드롭 다운의 제목을 기반으로 업데이트 된 데이터로 채 웠습니다. 그러나 선택에 따라 어떤 열이 표시되는지에 대해 구체적으로 알기 시작해야하는지 잘 모르겠습니다.

그것은 추가 핸들러 사용

Private Sub DataGridView1_EditingControlShowing(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewEditingControlShowingEventArgs) Handles DataGridView1.EditingControlShowing 

     If TypeOf e.Control Is ComboBox Then 

      AddHandler CType(e.Control, ComboBox).SelectedIndexChanged, AddressOf LastColumnComboSelectionChanged 

     End If 

    End Sub 

그것의 사용 :

enter image description here

답변

1

이 코드를보십시오 : 여기

은 분명히 내가 지금까지 가지고 있는지 확인해야하는 스크린 샷입니다 가시 열에 대한 열

Private Sub LastColumnComboSelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) 

    DataGridView1.Columns(5).Visible = True 
    DataGridView1.Columns(4).Visible = True 
    DataGridView1.Columns(3).Visible = True 

    If sender.SelectedItem = "Maths" Then 
     DataGridView1.Columns(2).Visible = False 
     DataGridView1.Columns(4).Visible = False 
    ElseIf sender.SelectedItem = "English" Then 
     DataGridView1.Columns(3).Visible = False 
     DataGridView1.Columns(4).Visible = False 
    ElseIf sender.SelectedItem = "others" Then 
     DataGridView1.Columns(3).Visible = False 
     DataGridView1.Columns(4).Visible = False 
     DataGridView1.Columns(2).Visible = False 
    End If 

    End Sub 
+0

감사 페이지로드에서 다음 절차를 썼다. 내 프로젝트 내에서 구현했습니다 및 gridview, 드롭 다운 및 열 위치에 대한 적절한 컨트롤에서 바뀌었지만 형식'System.Windows.Forms.DataGridViewEditingControlShowingEventArgs' 및'ComboBox'가 정의되지 않은 것을 알리는 오류가 발생합니다. – Matt

+0

DataGridview에 datagridviewcomboxcolumn을 추가합니까? 그리고 당신은 winforms 또는 웹에 wroking 있습니다 – Sathish

+0

감사합니다 @SATSON. 잘하면 물건을 더 선명하게 만드는 스크린 샷을 추가했습니다. webform에 별도의 드롭 다운 목록과 gridview 컨트롤이 있습니다. – Matt

1

나는 그것을 분류했다.

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load 
    GvStudentDetails.Columns(17).Visible = False 
    GvStudentDetails.Columns(18).Visible = False 
End Sub 

그리고 내 드롭 다운 선택 과정에서 다음과 같은 Select Case 문 : 지금까지

Protected Sub DdlSubject_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubject.SelectedIndexChanged 
    Select Case strSubject 
     Case "English" 
      GvStudentDetails.Columns(16).Visible = True 
      GvStudentDetails.Columns(17).Visible = False 
      GvStudentDetails.Columns(18).Visible = False 
     Case "Mathematics" 
      GvStudentDetails.Columns(16).Visible = False 
      GvStudentDetails.Columns(17).Visible = True 
      GvStudentDetails.Columns(18).Visible = False 
     Case Else 
      GvStudentDetails.Columns(16).Visible = False 
      GvStudentDetails.Columns(17).Visible = False 
      GvStudentDetails.Columns(18).Visible = True 
    End Select 
End Sub 
관련 문제