我有以下ASPX代码:
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<asp:UpdatePanel runat="server" ID="UpdatePanel" UpdateMode="Conditional">
<ContentTemplate>
<asp:Button runat="server" ID="UpdateButton1" OnClick="NextImg_Click" Text="Update" />
<asp:Repeater runat="server" ID="urlsUpdateRepeater">
<ItemTemplate>
<!-- THIS WOULD BE A LOOP FROM HERE -->
<!-- OPENS RESULT ITEM DIV CONTAINER -->
<div id="result_item">
<a href="<%# Eval("myUrl") %>" target="_blank">
<%# Eval("urlPageTitle")%></a>
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
我有一个NextImg_Click()
事件可以正常工作。
我将此代码用于DataBind ......什么是Update方法?
urlsUpdateRepeater.DataSource = resultsCollection;
urlsUpdateRepeater.DataBind();
一切似乎都是有序的。但每次单击“更新”按钮时,它都会重新呈现整个页面而不是仅部分回发的UpdatePanel。
它让我完全疯狂,因为我看不出代码有什么问题。有什么简单的事我想念吗?!请帮忙!
搜索和数据显示正确(在面板内),它不会进行部分回发。
感谢你对我的菜鸟问题的帮助!
答案 0 :(得分:0)
由于该按钮位于UpdatePanel的ContentTemplate
内,因此无需采取任何额外操作来获取部分页面回发。
尝试从Page_Load()
方法中删除该行。
答案 1 :(得分:0)
取自MSDN:
使用RegisterAsyncPostBackControl 在外部注册控件的方法 UpdatePanel控件作为触发器 异步回发,以及 可能会更新内容 更新面板。更新UpdatePanel 以编程方式控制,调用 更新方法。
所以,你控制(UpdateButton1)是里面 UpdatePanel,不需要ScriptManager1.RegisterAsyncPostBackControl
调用 - 抛弃它,你的问题就解决了。
答案 2 :(得分:0)
问题是我的<form>
标签是嵌入文档的,而不是相应的结束标记(带警告!)...
移动我的表格标签 - 它有效!
完全是我的错,谢谢你们。