我在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 }
没什么不同…
也有一些其他类似的帖子,但是我找不到解决方案!有任何想法吗?
ASP.NET 4中的ClientIDMode设置使您可以指定ASP.NET如何生成HTML元素的id属性。
在ASP.NET的早期版本(即pre 4)中,默认行为等效于ClientIDMode的AutoID设置。但是,默认设置现在为 Predictable 。
阅读微软文章
为此,需要使用AutoId,因为脚本管理器希望HTML控件在.NET的早期版本中生成。