在asp:GridView中插入隐藏列,但仍然可用客户端

时间:2010-10-08 10:19:27

标签: asp.net gridview aspxgridview

这很简单。我想要做的就是在asp:Griview中插入一个隐藏的列,我将能够通过javascript访问它。有什么指针吗?

4 个答案:

答案 0 :(得分:10)

您可以通过设置其CssClass属性来隐藏列,例如:

<style>
.hidden {display:none;}
</style>

...

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="Id" ItemStyle-CssClass="hidden"
            HeaderStyle-CssClass="hidden" />
        <asp:BoundField DataField="Title" />
    </Columns>
</asp:GridView>

答案 1 :(得分:3)

项目属性

ItemStyle-CssClass="hidden"

css class

.hidden{ display: none; }

答案 2 :(得分:2)

这就是我所做的。我在TemplateField页面

中的.aspx内创建了一个隐藏字段
<asp:TemplateField>
  <ItemTemplate>
    <asp:HiddenField ID="ITEM_VAL" runat="server" Value='<%# Bind("ITEM_VAL") %>' />
  </ItemTemplate>
</asp:TemplateField>

然后在代码隐藏文件 -

protected Sub gvHist_RowDataBound()
  Dim val as Integer
  Dim hiddenCol As HiddenField = e.Row.FindControl("ITEM_VAL")
  val = Convert.ToInt32(hiddenCol.Value)
End Sub

答案 3 :(得分:1)

添加CSS属性display:none。它将是不可见的,但仍然存在于标记中。

然而,这并不安全,因为客户可能会使用FireBug等工具来解锁此列,该工具允许覆盖属性。