我有一个包含LinkButton(用于分页)和Repeater的用户控件,它们都在UpdatePanel内部。分页工作正常,但每次点击到下一页时都会导致完整的页面回发。
UpdatePanel看起来像这样:
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Always">
<ContentTemplate>
<asp:Repeater ID="rptOrganizations" runat="server">
<HeaderTemplate>
<table>
<thead>
<tr>
<th>Organization</th>
<th>State</th>
<th>Accredited Since</th>
</tr>
</thead>
</table>
</HeaderTemplate>
<ItemTemplate>
<tr>
<td>
<asp:Literal ID="ltlInstitution" runat="server" />
</td>
<td>
<asp:Literal ID="ltlState" runat="server" />
</td>
<td>
<asp:Literal ID="ltlAccreditedDate" runat="server" />
</td>
</tr>
</ItemTemplate>
<FooterTemplate>
</table>
</FooterTemplate>
</asp:Repeater>
<uc2:RepeaterPaging ID="rpPager" runat="server" PageSize="10" OnNextButtonClickEvent="btnNext_Click" OnPreviousButtonClickEvent="btnPrev_Click" />
</ContentTemplate>
</asp:UpdatePanel>
而用户控件的内容如下:
<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> |
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton>
<asp:Literal ID="ltlNumResults" runat="server" /> results returned.
到目前为止,我尝试为用户控件添加异步回发触发器,这确实会导致异步回发,但不会更新更新面板中其余的文本。换句话说,异步回发发生,并且下一页显示出来,但原先重复器中的原始文本也在下方。
我还确认了我的链接按钮上设置了IDS,因为这可以在更新面板内触发完整的回发。
我尝试更改更新面板模式(始终、条件、ChildrenAsTriggers等等)。
这些尝试都没有任何作用——唯一真正导致异步回发的是使用触发器,但是更新面板中的其他内容没有被更新,所以我得到了重复的内容。有什么想法吗?