【问题标题】:avoid page reload and controls' state setting to default on hitting back button避免页面重新加载和控件的状态设置为默认点击返回按钮
【发布时间】:2013-05-09 20:27:17
【问题描述】:

我有两个页面,Page1 和 Page2。在第 1 页上,我在其下方有一个复选框,一个更新面板和几个更新面板中的控件,例如单选按钮和组合框。这是我的客户端。

<asp:checkbox><asp:checkbox>
</br>

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
             <ContentTemplate>
                <div id="div1" runat="server">
                <asp:Panel ID="pnl1" runat="server" 
</div>
</Panel>
 </ContentTemplate>
</UpdatePanel>

</br>
<asp:Button></Button>

当用户选中复选框(在更新面板之外)时,pnl1 变得可见,当未选中时,pnl1 变得不可见。复选框被选中。现在,当我单击 page1 上的按钮时,它会重定向到 page2。现在我在第 2 页,然后按返回按钮进入第 1 页。当我进入第 1 页时,我希望看到复选框被选中。我正在使用 Mozilla。谁能告诉我,我怎样才能做到这一点。

非常感谢您的意见。谢谢。

【问题讨论】:

  • 您可以使用Session 值来设置复选框。单击复选框时需要设置或取消设置,这可以使用 AJAX 或其他形式完成,另一种方法是将其附加到 url 查询,但这可能不是,可能不是最好的方法。
  • 感谢您的回复。为了让我的问题非常具体,当用户点击后退按钮时,我不想在第 1 页上刷新或重新加载控件的状态/值或将控件的状态/值更改为其默认状态。
  • Ahhhh 我看到你可能指的是类似这个问题stackoverflow.com/questions/9788688/…
  • 谢谢。我认为,这是一种滑动或动画功能。就我而言,我使用 response.redirect 导航到另一个页面。例如,如果我的复选框被选中并且我将它重定向到 page2 并使用后退按钮返回到 page1,我的复选框未选中。我希望在哪里检查它。

标签: c# asp.net webforms updatepanel pageload


【解决方案1】:

如果您重定向到页面,则首先调用 Page_load 函数。我敢肯定,您可以在此功能中检查复选框。 (此外,如果您在此页面上有按钮并单击它,它将再次调用此函数)。 您可以使用一些布尔变量(这是糟糕的解决方案)或 Session.

例如,类似这样的:

protected void Page_Load(object sender, EventArgs e)
    {
        if(Session["abc"] == null) {
            ...
            ...
            Session["abc"] = "something";
        }

    }

【讨论】:

  • 我有很多控件,几乎有 20-25 个控件。它可能会妨碍我的表现,而且肯定会增加代码行数和测试工作量。不过感谢您的解决方案。
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 2021-12-08
  • 1970-01-01
  • 2019-08-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多