我不知道如何通过ContentPlaceHolder部件中的按钮点击来刷新我的母版页(仅限)。
这是一个解释情况的图像(我模糊了无用的部分)。
要了解的事情:
蓝色:MasterPage
绿色:我要刷新的MasterPage的一部分
Red:MasterPage的ContentPlaceHolder(另一个aspx页面)
我想使用红色部分上按钮的Click事件刷新MasterPage的绿色部分。
我尝试了围绕绿色部分的更新面板,触发器是红色部分按钮的Click事件,但由于它不是相同的aspx页面,因此失败。
任何想法?
编辑:我的代码
母版页C#部分:
unary minus operator applied to unsigned type, result still unsigned
母版页Asp部分:
public void UpdateComment()
{
this.UPDP_Obs.Update();
}
ContentPlaceHolder c#part:
<asp:UpdatePanel ID="UPDP_Obs" runat="server"
UpdateMode="Conditional">
<ContentTemplate>
<asp:Table CssClass="center" ID="TBL_ObsLA" runat="server">
<asp:TableRow runat="server">
<asp:TableCell>
Dernier commentaire Ligne Cal-1 A:
</asp:TableCell>
</asp:TableRow>
<asp:TableRow runat="server">
<asp:TableCell>
<asp:Label ID="LBL_DateLA" runat="server" Text=""></asp:Label> <br /> <br />
<asp:Label ID="LBL_ObsLA" runat="server" Text=""></asp:Label>
</asp:TableCell>
</asp:TableRow>
</ContentTemplate>
</asp:UpdatePanel>
我用调试器跟踪,编译通过UpdateComment方法,但Updatepanel没有刷新(或至少标签不是)。 当我刷新整个页面(F5)时,标签将使用新注释
刷新有什么想法吗?
答案 0 :(得分:0)
尝试使用(它的预先编码,因为你没有指定语言)
在ContentPlaceHolder服务器语言脚本中(例如.vb,.cs文件)
public function method_that_updates() {
this.my_panel.refresh(); //or whatever does the refresh
//notice I made it public
}
在MasterPage中
CFTimeInterval pausedTime = [layer convertTime:CACurrentMediaTime() fromLayer:nil];
layer.speed = 0.0;
layer.timeOffset = pausedTime;
答案 1 :(得分:0)
制作主人UpdatePanel
&#39; UpdateMode=Conditional
并从页面手动更新。您可以在主服务器中提供可以从您的页面调用的公共方法。
此方法接受您要更改的信息并调用Update
:
// in your Masterpage
public void UpdateComment(string comment)
{
this.LblComment.Text = comment; // as label in the green part of the master
this.CommentUpdatePanel.Update(); // the UpdatePanel around this control
}
您必须将网页的Master
属性转换为正确的类型才能看到UpdateComment
。