Help with hiding columns in multiple c1truedbgrid using MultiSelect control

Posted by: Victor.m.charles.civ on 26 May 2020, 1:42 pm EST

    • Post Options:
    • Link

    Posted 26 May 2020, 1: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

  • Posted 26 May 2020, 6:34 pm EST

    Hi Victor,

    As we can see in Part A of your code that all the columns are the same in the every grid so to achieve your desired result you just need to replace the following code from your Part B as given below:

    From:

    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
    

    To:

    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
    C1Screen2.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = False
    C1Screen3.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = False
    C1Screen4.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = False
    C1Screen5.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = False 
    Else
    C1Screen1.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = True
    C1Screen2.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = True
    C1Screen3.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = True
    C1Screen4.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = True
    C1Screen5.Splits(0).DisplayColumns(C1MultiSelect2.Items(j).Value.ToString).Visible
    = True 
    End If 
    Next 
    End Sub
    

    I hope it helps. In case you need any other help, please let us know.

    Regards,

    Prabhat Sharma.

  • Posted 26 May 2020, 11:56 pm EST

    Thank You.

Need extra support?

Upgrade your support plan and get personal unlimited phone support with our customer engagement team

Learn More

Forum Channels