Asp.net
更新面板內的使用者控制項導致整頁回發
我有一個帶有連結按鈕(用於分頁)的使用者控制項和一個更新面板內的轉發器。分頁工作正常,但每次我點擊下一頁時都會導致整頁回發。
更新面板如下所示:
<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,因為這可以觸發更新面板內的完整回發。
我嘗試過更改更新面板模式(Always、Conditional、ChildAsTriggers 等)。
沒有任何區別 - 唯一真正導致非同步回發的是使用觸發器,但是更新面板中的其餘內容沒有更新,所以我得到了重複的內容。有任何想法嗎?
如果您的 UpdatePanel 無法將其內容呈現給 a
<div>(例如,當它位於 內部時<tr>),則會發生完整回發。因此,請檢查 UpdatePanel 中的 html,您可能會在那裡找到答案(另外,尋找一些不正確的 xhtml,例如錯誤關閉的元素)。
刪除更新模式=“始終”不要在上面放任何東西,它應該可以工作。
還有一件事是您將腳本管理器添加到您的頁面還是不控制?
如果沒有腳本管理器,它將無法工作。