2011-04-04 235 views
0

我可以从内容页面更新masterpage的updatepanel吗?使用内容页面的masterpage的UpdatePanel

假设我有类似如下的母版一个UpdatePanel ..

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

我可以改变从contentpage Literal1的文本?

如果是这样 - 如何?

任何帮助表示赞赏!

回答

0

当然可以。

确保您在UpdatePanel内的内容页面上同时放置了主页& Button上的两个Literal。在Button的点击处理程序,您可以更新母版页

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

这对我没有工作:/ HTTP://stackoverflow.com/questions/25447104/why-the-updatepanel-in-masterpage-not-updating-from-an-event - 从最含量巴 – SearchForKnowledge 2014-08-22 13:04:17

0

您可以找到母版页通过这样的代码任何控制:

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

那么你应该能够更新文字的内容。

5

Literal控制或者您可以编程为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"; 
0

感谢对

Özgür的卡普兰

,我生产我自己的解决方案:

我不得不产生与jQuery.dialog一条警告消息,我已经放在一个UpdatePanel用空的asp:label(UpdateMode =“Conditional”)。

在Master.cs我放在这个公共Funcion:

 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

相关问题