【问题标题】:Masterpage + updatepanel on child page子页面上的 Masterpage + updatepanel
【发布时间】:2009-10-13 13:28:42
【问题描述】:

所以我在更新面板中有一个带有登录名的母版页。我有一个子页面,它有一个文字控件,应该在登录更新时更新。它没有做的是在回发时重新加载我用来为该文字生成内容的方法。单击登录后,我尝试从母版页调用子页上的方法,但是我收到一个错误,即找不到文字控件(因为它存在于子页而不是母版页上)。如何在母版页中引用该控件以将其传递给我的方法?

【问题讨论】:

    标签: c# asp.net updatepanel master-pages


    【解决方案1】:

    下面的文章展示了控件树如何与 MasterPages 一起使用,以及如何在控件树的不同级别引用不同的控件。

    ASP.Net 2.0 - Master Pages: Tips, Tricks, and Traps

    【讨论】:

    • 好吧,这些都不起作用,仍然找不到控件。问题更像是当子页面更新面板重新加载时,除非我点击重新加载,否则它不会执行完整的回发来刷新数据。它会在您登录后检查会话变量集。也许会话变量是在触发控制子页面内容的方法之后设置的?
    【解决方案2】:

    因此,场景是您在子页面上有一个更新面板,当触发时不会更新/刷新您的标签,该标签位于母版页的标题中。

    您要做的是,在母版页后面的代码中创建一个更改标签值的函数。

    在母版页上为标签添加一个更新面板,由 textchanged 事件等触发。

    现在,在您的子页面代码后面,或者说,按钮单击事件中,调用母版页中存在的函数并在括号中发送所需的值。

    C#:

    ((MyMaster)this.Page.Master).ShowMessage(text);
    

    VB.NET:

    DirectCast(Me.Page.Master, MyMaster).ShowMessage(text)
    

    这应该使用正确的值更新标签,同时触发母版页上的更新面板,从而刷新您的标签。

    我现在要亲自尝试一下,祝我好运。 :D

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-05
      • 2013-12-27
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-15
      相关资源
      最近更新 更多