从内容页面使用母版页的UpdatePanel

时间:2011-04-04 08:04:25

标签: asp.net

我可以从内容页面更新母版页的更新面板。

假设我在masterpage中有一个updatepanel,如下所示..

<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Literal ID="Literal1" runat="server"></asp:Literal>
</ContentTemplate>
</asp:UpdatePanel>

我可以从内容页面更改Literal1的文字吗?

如果是这样 - 怎么样?

任何帮助表示赞赏!

4 个答案:

答案 0 :(得分:5)

或者,您可以以编程方式将发件人作为AsyncPostBackTrigger添加到UpdatePanel。

UpdatePanel panel = (UpdatePanel)Master.FindControl("UpdatePanel1");
AsyncPostBackTrigger trigger = new AsyncPostBackTrigger();
trigger.ControlID = ((Control)sender).ID;
panel.Triggers.Add(trigger);
panel.DataBind();
Literal literal = Master.FindControl("Literal1") as Literal;
literal.Text = "some text";

答案 1 :(得分:0)

您可以通过以下代码从主页面中找到任何控件:

Literal literal = (Literal)Master.FindControl("Literal1");

然后您应该能够更新该文字的内容。

答案 2 :(得分:0)

确定你可以。

确保将Literal放在母版页上。 Button内的内容页面上的UpdatePanel。在Button的点击处理程序中,您可以更新母版页上的Literal控件

Literal literal1 = (Literal)Master.FindControl("Literal1");

答案 3 :(得分:0)

感谢

ÖzgürKaplan

,我已经制作了自己的解决方案:

我不得不用jQuery.dialog生成一条警告消息,我已经放置了一个带有空asp:标签的UpdatePanel(UpdateMode =“Conditional”)。

在Master.cs中我放置了这个公共功能:

        public void WarningUpdate(string childControlID, string eventName, string warningMessage)
    {
        lblWarningMessage.Text = warningMessage;            
        var trigger = new AsyncPostBackTrigger {ControlID = childControlID, EventName = eventName};
        upWarningMessage.Triggers.Add(trigger);
        upWarningMessage.DataBind();
        upWarningMessage.Update();
    }

在页面中,在某些情况下(单击一个......)我已经放置了这段代码:

            var master = (FM) Master;
            if (master != null) master.WarningUpdate(((Control)sender).ID, "Click", "Devi prima selezionare una Provincia!");

结果是: enter image description here