0

在我的 GridView 中,我使用的是 w3schools css。在网格视图中,我想隐藏一列(BoundField),但不是通过设置“Visible = false”,因为我想访问该列数据。

对于BoundField(我想隐藏的列),我使用css通过给出“”和HeaderStyle-cssClass =“hidden”来隐藏它。

当我在网格视图中应用 w3schools css 时,它会覆盖 BoundField 中的 css。

如果我删除 w3schools css,那么 BoundField css 工作正常,但我失去了 GridView 设计。

我怎样才能让两个css一起工作?如果不可能,那么如何在不使用“Visible = false”的情况下隐藏该列。

给出下面的代码。在头部: <script type="text/css"> .hiddenGV { display:none; } </script>

在正文部分

`<asp:GridView ID="GridView1" runat="server" class="w3-table w3-striped w3-bordered w3-card-4 gridtop"  OnSelectedIndexChanged="GridView1_SelectedIndexChanged" AutoGenerateColumns="False" DataKeyNames="Project_ID,Instance_ID" DataSourceID="SqlDataSource1">
        <Columns>
            <asp:BoundField DataField="Project_ID" HeaderText="Project_ID" ReadOnly="True" SortExpression="Project_ID" HeaderStyle-CssClass="hiddenGV" ><ItemStyle CssClass="hiddenGV"/></asp:BoundField>

`

4

2 回答 2

1

这里有几件事不对劲。您在头部的 css 类不正确,因为它应该在样式标签中。在 BoundField 中您不需要添加 ItemStyle 标记,因为 ItemStyle 是 BoundField 的一个属性。要隐藏列并仍然能够访问该值,请在头部使用此 css

   <style type="text/css">
      .hiddenGV
      {
        visibility :hidden;
      }
    </style>

然后在 BoundField 中为标题和数据行设置 css,如下所示:

  <asp:BoundField DataField="Project_ID" HeaderText="Project_ID" ReadOnly="True" SortExpression="Project_ID" ItemStyle-CssClass="hiddenGV"  HeaderStyle-CssClass="hiddenGV"/></asp:BoundField>
于 2016-04-06T08:24:12.570 回答
0

我通过编写代码而不是 css 解决了这个问题。

我使用了 GridView 的 OnRowCreated 属性函数并使用

e.Row.Cells[0].Visible = false;

有了这个,该列也被隐藏了,我仍然可以在后面的代码中访问它。

于 2016-04-06T09:30:47.657 回答