【问题标题】:How can I save asp:HiddenField value across postback?如何在回发中保存 asp:HiddenField 值?
【发布时间】:2019-12-05 14:18:48
【问题描述】:

如何在回发中保存 asp:HiddenField 值?

【问题讨论】:

    标签: asp.net


    【解决方案1】:

    这与 ViewState 无关。表单控件的值是通​​过执行 POST 来维护的。只要在页面生命周期中足够早地创建控件,就会在控件上设置发布的值。如果您刷新页面或单击执行 GET 的超链接,则该值将丢失或恢复为设计器生成的默认值。

    回到你的问题,如果你有一个设计器生成的HiddenField(在 aspx 文件中),它应该在回发时自动设置值。要么你在代码中的其他地方改变它,要么你试图在它被设置之前访问它(即在Page_Load()之前)。如果你有一个代码生成的HiddenField,它需要有相同的ID并且在Page设置发布值之前创建,比如OnInit

    我建议您通读并理解以下文章。否则,您将不断碰壁,因为 Page 生命周期和 ViewState 是基础。

    http://msdn.microsoft.com/en-us/library/ms972976.aspx

    http://weblogs.asp.net/infinitiesloop/archive/2006/08/03/Truly-Understanding-Viewstate.aspx

    【讨论】:

    • 感谢您的链接。我认为 MSDN 文章在解释方面做得更好,因为它实际上向您展示了页面的生命周期以及在尝试描述 ViewState 之前每个步骤中发生的情况。这篇博文对我来说似乎很杂乱无章。
    【解决方案2】:

    在 asp:UpdatePanel 中放置和 asp:hiddenfield 有效。

    【讨论】:

    • 完美解决方案
    • 它对我有用,谢谢。
    【解决方案3】:

    如果您是动态添加它,如果它在页面生命周期中添加得太晚,就会发生这种情况。将它添加到 PreInit 中,你应该没问题。查看http://msdn.microsoft.com/en-us/library/ms178472.aspx 了解更多信息。

    【讨论】:

      【解决方案4】:

      是的,asp:HiddenFieldasp:UpdatePanel 中有效。

      【讨论】:

      • 虽然这可能是解决问题的宝贵提示,但答案确实需要比这更多的细节。请edit 提供示例代码来说明您的意思。或者,考虑将其写为评论。
      【解决方案5】:

      将 EnableViewState 设置为 True

      【讨论】:

        【解决方案6】:

        默认情况下,它就是为此而构建的。除非您为控件、父控件或页面禁用了视图状态,否则应该不会有问题。

        【讨论】:

          【解决方案7】:

          由于更新面板而发生,请检查您的更新面板。对整个页面使用单个更新面板。

          【讨论】:

            【解决方案8】:

            <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                <ContentTemplate>
                     <asp:HiddenField ID="hdnFld" Value="xyz" runat="server"/>
                </ContentTemplate>
            </asp:UpdatePanel>
            

            如果您使用 JQuery 更改隐藏字段值,然后页面刷新,隐藏字段值将是新值。 现在使用 JQuery 访问相同的内容。

            var currentTab = $('#hdnFld').val();
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2012-07-08
              相关资源
              最近更新 更多