ASP.NET浏览器返回触发按钮事件

时间:2013-09-23 05:19:27

标签: c# asp.net event-handling back-button page-lifecycle

我遇到一个问题,当用户点击浏览器上的后退按钮时,事件会意外触发。以下是步骤。

  1. 用户点击按钮(触发btnNewSurvey_Click)
  2. 浏览器显示弹出窗口
  3. 用户关闭弹出窗口并从单独的链接导航到第二页。
  4. 浏览器显示第二页
  5. 用户点击回复
  6. btnNewSurvey_Click再次被解雇(这是问题)
  7. 我想知道为什么会这样。我查看了asp.net的页面生命周期,并关闭了页面的缓存,但我无法解释。

    如果需要更多信息,请与我们联系。谢谢!

    更新:看起来按钮点击事件只会在用户点击Chrome时触发

    ASPX

    <asp:Button ID="btnNewSurvey" runat="server" Text="New Survey" OnClick="btnNewSurvey_Click" />
    

    aspx.cs

    protected void btnNewSurvey_Click(object sender, EventArgs e)
    {
        rwScreenList.VisibleOnPageLoad = true;
        rwScreenList.Visible = true;
        ListBox lbox = rwScreenList.ContentContainer.FindControl("lboxScreenSelection") as ListBox;
        ((Label)rwScreenList.ContentContainer.FindControl("lblScreenError")).Text = "";
        lbox.DataSource = DatabaseFactory.GetScreensForProject(ProjectId);
        lbox.DataBind();
    }
    

    问题是当用户从另一个页面返回时调用此事件。

1 个答案:

答案 0 :(得分:0)

问题似乎出现在rwScreenList.VisibleOnPageLoad = true;

我看到这是telerik属性,当你使用这个属性时,你需要经历某些事情。

你也可以这样做:

rwScreenList.VisibleOnPageLoad = !Page.IsPostBack;

请参阅以下讨论,以帮助您解决问题。

http://www.telerik.com/community/forums/aspnet-ajax/window/radwindow-reopening-after-closing-it-in-every-postback.aspx