【发布时间】:2017-12-28 05:54:59
【问题描述】:
我无法在中继器内回发 UpdatePanel。
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Repeater ID="Posts" runat="server" OnItemCreated="Posts_OnItemCreated">
<ItemTemplate>
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" >
<ContentTemplate>
<asp:Label ID="lblComentarios" runat="server" Text='<%# Eval("LabelComentarios") %>'></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click"/>
</Triggers>
</asp:UpdatePanel>
<asp:TextBox ID="txtComentario" runat="server" CssClass='<%# Eval("PostId") %>'></asp:TextBox>
<asp:Button ID="Button1" ClientIDMode="Static" runat="server" OnCommand="btnComentar_OnCommand" CommandName='<%# Eval("PostId") %>' class='<%# Eval("PostId") %>' />
</ItemTemplate>
</asp:Repeater>
中继器 OnItemCreated() 的代码:
protected void Posts_OnItemCreated(object sender, RepeaterItemEventArgs e)
{
var control = e.Item.FindControl("Button1");
ScriptManager.GetCurrent(Page).RegisterAsyncPostBackControl(control);
}
然后在我的代码隐藏 OnCommand ..
protected void btnComentar_OnCommand(object sender, CommandEventArgs e)
{
MyCode();
foreach (RepeaterItem item in Posts.Items)
{
var panel = (UpdatePanel)item.FindControl("UpdatePanel1");
panel.Update();
}
}
除了 panel.update() 之外,一切都在做它应该做的事情。
【问题讨论】:
-
hmm.. 所以
btnComentar_OnCommand没有触发? -
它正在执行我拥有的所有代码。但不刷新内容模板
标签: c# asp.net ajax updatepanel repeater