【问题标题】:ASP.Net - GridView server-side variable for each row?ASP.Net - 每行的 GridView 服务器端变量?
【发布时间】:2013-06-06 06:41:18
【问题描述】:

我想在 GridView 中添加一个不向用户显示的隐藏键字段。我尝试做类似的事情:

<asp:GridView ...>
    <Columns>
        <asp:TemplateField>
            <ItemTemplate>
                <asp:HiddenField ID="secretkey" runat="server" Value='<%# Eval("secretkey") %>' />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

但隐藏字段最终仍以纯文本形式显示在 html 源代码中。是否可以使用服务器状态来做这样的事情?

【问题讨论】:

  • 你到底想做什么? IE。使用隐藏字段的期望效果是什么?
  • 我希望能够为每一行附加一个唯一的键,以便在代码隐藏中进行查询。出于安全原因,我不想将此密钥暴露给客户端。

标签: asp.net gridview


【解决方案1】:

使用数据键名,您甚至可以将多个键关联到您的行。检查以下链接http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeynames.aspx

【讨论】:

    【解决方案2】:

    Session 是存储您需要跨 PostBacks 但无法发送到客户端的小数据的最佳位置。

    您可以将由行标识符索引的字典放入会话中,并使用它来获取您的密钥。

    请注意,会话是跨页面维护的,因此除非您对内存中的信息感到满意,直到用户退出(最终退出),否则您必须在完成后将其删除。

    【讨论】:

      【解决方案3】:

      是的,隐藏字段将在 html 源代码中可见,您应该使用 datakey 来使用您的密钥

      【讨论】:

        猜你喜欢
        • 2012-12-19
        • 1970-01-01
        • 1970-01-01
        • 2015-10-02
        • 2014-10-13
        • 1970-01-01
        • 1970-01-01
        • 2011-03-15
        • 1970-01-01
        相关资源
        最近更新 更多