Posted 26 May 2020, 10:42 pm EST
Hello,
I’m using the code in part A to load multiple Grid controls from table by multiple sections, How do I modify the code in Part B to hide or show columns displayed in all 5 Grids using the MultiSelect control? The MultiSelect control contains the columns for all the Grids.
Part A:
If Both.Checked Then
Dim xyz As String = “”
If C1TrueDBGrid2.SelectedRows.Count = 0 Then
For row1 = 0 To C1TrueDBGrid1.SelectedRows.Count - 1
xyz = xyz + “[” + C1Screen1.Columns(“SN”).Caption + “] LIKE’” + C1TrueDBGrid1.Columns(“CHPT”).CellText(C1TrueDBGrid1.SelectedRows(row1)) + “%’ OR”
Next
ElseIf C1TrueDBGrid1.SelectedRows.Count = 0 Then
For row = 0 To C1TrueDBGrid2.SelectedRows.Count - 1
Dim str As String
str = C1TrueDBGrid2.Columns(“COUNTRY”).CellText(C1TrueDBGrid2.SelectedRows(row))
xyz = xyz + “[” + C1Screen1.Columns(“COUNTRY”).Caption + “]='” + str + “’ OR”
Next
Else
For row = 0 To C1TrueDBGrid2.SelectedRows.Count - 1
Dim str As String
str = C1TrueDBGrid2.Columns(“COUNTRY”).CellText(C1TrueDBGrid2.SelectedRows(row))
For row1 = 0 To C1TrueDBGrid1.SelectedRows.Count - 1
xyz = xyz + “[” + C1Screen1.Columns(“COUNTRY”).Caption + “]='” + str + “’ AND [” + C1Screen1.Columns(“SN”).Caption + “] LIKE’” + C1TrueDBGrid1.Columns(“CHPT”).CellText(C1TrueDBGrid1.SelectedRows(row1)) + “%’ OR”
Next
Next
End If
xyz = xyz.Remove(xyz.Length - 3, 3)
Console.WriteLine(xyz)
fsLinkTest = New System.IO.FileStream(Application.StartupPath + "\AOP40A.XML", IO.FileMode.Open)
dtsetLinkTest.Clear()
dtsetLinkTest.ReadXml(fsLinkTest)
fsLinkTest.Close()
FilteredDTA = dtsetLinkTest.Tables(0)
Dim view As DataView
view = New DataView(FilteredDTA)
view.RowFilter = xyz
view.Sort = "SN ASC"
C1Screen1.Refresh()
C1Screen1.DataSource = view
C1Screen2.DataSource = view
C1Screen3.DataSource = view
C1Screen4.DataSource = view
C1Screen5.DataSource = view
Dim ic as integer = 0
For ic = 14 To 68
C1Screen1.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 1 To 13
Me.C1Screen2.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 33 To 68
Me.C1Screen2.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 1 To 32
Me.C1Screen3.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 47 To 68
Me.C1Screen3.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 1 To 50
Me.C1Screen4.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 67 To 68
Me.C1Screen4.Splits(0).DisplayColumns(ic).Visible = False
Next
For ic = 1 To 66
Me.C1Screen5.Splits(0).DisplayColumns(ic).Visible = False
Next
End If
Part B:
FormLoad Event:
’ Load MultiSelect Controls
For ida As Integer = 0 To C1Screen1.Splits(0).DisplayColumns.Count - 1
C1MultiSelect2.Items.Add(C1Screen1.Splits(0).DisplayColumns(ida).Name)
Next
C1MultiSelect1.TagWrap = True
Private Sub C1MultiSelect2_SelectionChanged(sender As Object, e As EventArgs) Handles C1MultiSelect2.SelectionChanged
For j = 0 To C1MultiSelect2.Items.Count - 1
If Not C1MultiSelect2.Items(j).Selected Then
C1Screen1.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible = False
Else
C1Screen1.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible = True
End If
Next
End Sub