在ASP.NET中的Gridview中动态显示/隐藏列

时间:2014-07-18 08:58:24

标签: asp.net vb.net gridview

我试图在gridview中显示/隐藏列以便更好地查看。 我需要做的是:

  1. 在页面加载时隐藏第8,9和10列
  2. 点击按钮后显示
  3. 我使用RowCreated事件(下面的代码)成功地将它们隐藏在页面加载中。但截至目前,我还没有找到通过按钮点击再次显示它们的方法。

      Protected Sub GridView1_RowCreated(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView1.RowCreated
    
        Dim row As GridViewRow = e.Row
        ' Intitialize TableCell list
        Dim columns As New List(Of TableCell)()
        For Each column As DataControlField In GridView1.Columns
            'Get the first Cell /Column
            Dim cell As TableCell = row.Cells(0)
            ' Then Remove it after
            row.Cells.Remove(cell)
            'And Add it to the List Collections
            columns.Add(cell)
        Next
    
        ' Add cells
        row.Cells.AddRange(columns.ToArray())
    
        e.Row.Cells(8).Visible = False
        e.Row.Cells(9).Visible = False
        e.Row.Cells(10).Visible = False
        e.Row.Cells(11).Visible = False
    End Sub
    

    我尝试了以下方法并带来了不幸的结果:

    1. 将宽度设置为0px然后在点击时重置为自动 - 因为我的大多数列都是包含按钮或复选框的项目字段,所以这根本不起作用

    2. 使用GridView1.Columns(8).Visible = False - 与上述原因相同

    3. 使用 e.Row.Cells(8).Visible = True 创建RowDataBound事件,但我无法通过按钮点击成功调用此事件。
    4. 请指教。提前谢谢。

1 个答案:

答案 0 :(得分:0)

DataGridView1.Columns(n).Visible = False'在vb.net工作

其中n表示列索引