需要AJAX UpdatePanel帮助

时间:2010-08-30 23:27:37

标签: c# asp.net updatepanel

我有以下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。

它让我完全疯狂,因为我看不出代码有什么问题。有什么简单的事我想念吗?!请帮忙!

搜索和数据显示正确(在面板内),它不会进行部分回发。

感谢你对我的菜鸟问题的帮助!

3 个答案:

答案 0 :(得分:0)

由于该按钮位于UpdatePanel的ContentTemplate内,因此无需采取任何额外操作来获取部分页面回发。

尝试从Page_Load()方法中删除该行。

答案 1 :(得分:0)

取自MSDN:

  

使用RegisterAsyncPostBackControl   在外部注册控件的方法   UpdatePanel控件作为触发器   异步回发,以及   可能会更新内容   更新面板。更新UpdatePanel   以编程方式控制,调用   更新方法。

所以,你控制(UpdateButton1)是里面 UpdatePanel,不需要ScriptManager1.RegisterAsyncPostBackControl调用 - 抛弃它,你的问题就解决了。

答案 2 :(得分:0)

问题是我的<form>标签是嵌入文档的,而不是相应的结束标记(带警告!)...

移动我的表格标签 - 它有效!

完全是我的错,谢谢你们。