ASP.NET 浏览器反向触发按钮事件



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

  1. 用户单击按钮(触发btnNewSurvey_Click)
  2. 浏览器显示弹出窗口
  3. 用户关闭弹出窗口并从单独的链接导航到第二个页面。
  4. 浏览器显示第二页
  5. 用户点击返回
  6. 再次触发btnNewSurvey_Click(这是问题所在)

我想知道为什么会发生这种情况。我已经研究了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();
}

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

问题似乎出在您的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

相关内容

  • 没有找到相关文章

最新更新