【发布时间】:2011-08-04 21:28:41
【问题描述】:
我在 UpdatePanel 的 ListView 中有一个 LinkButton。我希望按钮(嗯,其中任何一个)导致部分回发,但它们会导致整页回发。
<asp:UpdatePanel ID="upOutcomes" UpdateMode="Conditional" runat="server">
<ContentTemplate>
<asp:ListView ID="lvTargets" runat="server" onitemdatabound="lvTargets_ItemDataBound">
<ItemTemplate>
<asp:LinkButton ID="lnkAddTarget" CssClass="lo" Text='<%# Eval("Title") + " <b>" + Eval("Level") + Eval("SubLevel") + "</b>" %>' runat="server"></asp:LinkButton>
</ItemTemplate>
</asp:ListView>
</ContentTemplate>
</asp:UpdatePanel>
我在 stackoverflow 上发现了另一篇建议添加以下内容的帖子:
protected void lvTargets_ItemDataBound(object sender, ListViewItemEventArgs e) {
var lb = e.Item.FindControl("lnkAddTarget") as LinkButton;
tsm.RegisterAsyncPostBackControl(lb); // ToolkitScriptManager
}
这并没有什么不同...
还有一些其他类似的帖子,但我找不到解决方案!有什么想法吗?
【问题讨论】:
-
刚试过,谢谢。虽然没有运气。 :( 无论如何我都需要它有条件地更新。
-
尝试使用将更新面板的控件填充
集合,即使该控件位于面板内。 -
我最终需要在 Page 指令中设置 ClientIDMode="AutoID"。不知道为什么——但它奏效了!我希望这可以帮助下一个遇到此问题的人。
-
我建议您将最后一条评论添加为“答案”,这样以后的搜索者会发现它更容易:)
-
我遇到了同样的问题,我通过使用
OnItemCreated而不是OnItemDataBound使其在没有AutoID的情况下工作。显然,如果您使用第二个,则 UpdatePanel 仅适用于一个异步回发!第二次尝试总是会导致完整的回发,我不知道为什么......
标签: c# asp.net ajax listview asp.net-ajax