【问题标题】:ASP.Net - WebForms - How to avoid several Page_Load events when a link is clickedASP.Net - WebForms - 单击链接时如何避免多个 Page_Load 事件
【发布时间】:2011-11-04 06:04:27
【问题描述】:

我正在使用 ASP.Net C# WebForms Framework 3.5 开发网站 我正在使用母版页进行设计,在母版页内我有两个用于页眉和页脚的用户控件。 当用户登录时,在 Header Control 中,有一个 Logoff 和 onClick 事件的链接,我们在 cs 文件中编写了注销代码。

当我们点击它时,.net 会调用 WebForm 的 page_load 事件,然后是 master pages 的 page_load 事件,然后是 master page 中使用的所有用户控件的 page_load 事件,最后会调用 click 事件。

我们如何避免这种情况?我想避免 page_load 事件。

【问题讨论】:

    标签: c# asp.net webforms postback pageload


    【解决方案1】:

    由于asp.net page life-cycle 的工作方式,您无法避免这种情况。但是,你应该把你的代码放在!IsPostBack

     protected void Page_Load(object sender, EventArgs e)
     {
       if (!IsPostBack)
       {
          // put your code here..
       }
     }
    

    【讨论】:

    • 我知道我们可以这样做,但是有一些东西不能放进去 if (!IsPostBack) { // 放你的代码 }
    【解决方案2】:

    asp.net 架构就是这样工作的。你无法改变它。

    但您可以采用不同的方法。

    当您单击按钮时,您可以直接从客户端(从 javascript)调用 Web 服务,而不是回发。

    或者你需要关注asp.net MVC。

    【讨论】:

      【解决方案3】:

      使用以下代码:

      protected void Page_Load(object sender, EventArgs e)
      {
           if(!IsPostBack)
      {
      //code part
      }
      }
      

      【讨论】:

      • 我知道我们可以这样做,但是有一些东西不能放进去 if (!IsPostBack) { // 把你的代码 } .. 这些怎么办?跨度>
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-30
      • 2011-12-26
      • 1970-01-01
      • 2016-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多