【问题标题】:Hide vertical lines in the gridview for hidden columns在隐藏列的网格视图中隐藏垂直线
【发布时间】:2014-04-29 23:24:56
【问题描述】:

Visual Studio:2010 框架:4.0 背后代码:VB.Net

我正在用 asp.net 构建网站。我使用网格视图来显示数据。我只想要可见列上的垂直线。为此,我使用了 gridview 的 gridline 属性。但它适用于gridview中的所有列。在网格视图中有一些不可见(隐藏)的列。所以我不想应用于那些隐藏的列。我试图减小列宽,但它不起作用。 那么如何隐藏隐藏列的网格线。附上我的网格视图的屏幕截图。

减小我在下面代码中使用的列的宽度:

gridview1.Columns (8).ItemStyle.Width = 0

我使用下面的属性来设置网格视图上的垂直线。

gridview1.GridLines="Vertical"

下面是我的网格视图的屏幕截图:

【问题讨论】:

  • 不显示:在隐藏列的 th / td 上没有工作?宽度保持在那里并保持填充
  • 您可以将基础数据更改为没有列吗?这可能比弄乱 GUI 更容易。
  • 正如@SteveWellens 所说,请考虑使用DataKeys 而不是设置隐藏可见性

标签: asp.net css .net vb.net gridview


【解决方案1】:

您实际上应该像这样在DataBound 事件中切换ColumnCollection 的可见性。

Protected Sub gridview1_DataBound(sender As Object, e As System.EventArgs) Handles gridview1.DataBound
    gridview1.Columns(7).Visible = False
    gridview1.Columns(8).Visible = False
    gridview1.Columns(9).Visible = False
End Sub

【讨论】:

    【解决方案2】:

    您可以在 rowdatabound 事件中隐藏列。假设要隐藏的列的索引为 7,8,9

    protected void gridview1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Cells[7].Visible = false;  
        e.Row.Cells[8].Visible = false; 
        e.Row.Cells[9].Visible = false; 
    }
    

    在 aspx 中,通过将 onrowdatabound 属性分配给 gridview 将 rowdatabound 事件附加到上述函数

    <asp:Gridview id="gridview1" runat="server" onrowdatabound="gridview1_RowDataBound">
    .
    .
    .
    </asp:GridView>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-17
      • 1970-01-01
      • 1970-01-01
      • 2015-12-25
      • 2023-03-14
      • 1970-01-01
      相关资源
      最近更新 更多