【问题标题】:How to call a method only once in the first page load in the master page如何在母版页的第一页加载中仅调用一次方法
【发布时间】:2013-03-24 20:34:19
【问题描述】:

我有以下情况:

Page1.aspx这个页面有母版页master.aspx

我在母版页中有一些代码:

 if (!Page.IsPostBack)
            {
                adjustServiceBar();

            }

当我点击Page1.aspx中的任何按钮时,它会进入!Page.IsPostBack并执行该方法!!

我只希望在!Page.IsPostBack) 中使用此方法

【问题讨论】:

    标签: c# asp.net master-pages page-lifecycle ispostback


    【解决方案1】:

    一种方法是设置一个会话变量,然后检查该变量以确保您的代码只会触发一次。 另一种方法是在表单上设置一个隐藏控件并使用它的 text 或 value 属性。

    根据每个场景,解决方案可能非常复杂,例如自定义派生母版页和扩展当前事件功能以满足您的需求的页面。

    【讨论】:

      【解决方案2】:

      我相信在内容页面中检查IsPostBack 会更加一致。您可以将此条件移动到Page1.aspx 并在母版页中公开adjustServiceBar() 方法,以便内容页面可以调用它,例如Master.adjustServiceBar()

      【讨论】:

      • +1 我也会这样做。毕竟内容页面是回发而不是母版页。
      • Master.adjustServiceBar(); 由于保护级别而无法访问
      • 那么你为什么不改变保护级别呢?)如果由于任何原因这是不可能的,你可以添加另一种方法来包装这个。或者您根本无法更改母版页代码?
      • public void adjustServiceBar()
      • 但还是同样的问题!
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-07
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多