2010-07-13 38 views
11

Tôi có một điều khiển người dùng với các nút liên kết (được sử dụng để phân trang) và bộ lặp trong bảng điều khiển cập nhật. Phân trang hoạt động chính xác, nhưng đang gây ra một lần đăng lại trang đầy đủ mỗi khi tôi nhấp qua trang tiếp theo.Điều khiển người dùng bên trong bảng cập nhật gây ra toàn bộ trang đăng lại

Bảng cập nhật trông như thế này:

<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> 

Và các nội dung của điều khiển người dùng giống như thế này:

<asp:LinkButton ID="btnPrev" runat="server" OnClick="btnPrev_Click">Previous</asp:LinkButton> | 
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click">Next</asp:LinkButton> 

&nbsp;&nbsp; 
<asp:Literal ID="ltlNumResults" runat="server" /> results returned. 

Cho đến nay, tôi đã cố gắng thêm một async postback kích hoạt cho người sử dụng kiểm soát, điều này gây ra một postback không đồng bộ nhưng không cập nhật phần còn lại của văn bản trong bảng cập nhật. Trong các từ khác, postback không đồng bộ xuất hiện và trang tiếp theo xuất hiện, nhưng văn bản gốc trong bộ lặp lại cũng nằm ngay bên dưới nó.

Tôi cũng đã xác nhận rằng tôi đã đặt IDS trên các nút liên kết của mình, vì điều đó có thể kích hoạt toàn bộ postback trong bảng điều khiển cập nhật.

Tôi đã thử thay đổi chế độ bảng cập nhật (Luôn luôn, Điều kiện, Trẻ emTrình kích hoạt, v.v ...).

Không có điều gì tạo nên sự khác biệt - điều duy nhất thực sự gây ra postback không đồng bộ là sử dụng trình kích hoạt, nhưng phần còn lại của nội dung trong bảng cập nhật không được cập nhật, vì vậy tôi nhận được nội dung trùng lặp. Bất kỳ ý tưởng?

+0

Nugget thông tin về việc thiếu ID trên LinkButtons gây ra một postback đầy đủ có ích cho tôi, cổ vũ! – paulH

Trả lời

15

Trả sau đầy đủ xảy ra nếu UpdatePanel của bạn không thể hiển thị nội dung của nó thành <div> (ví dụ: khi nó nằm bên trong <tr>). Vì vậy, hãy kiểm tra html bên trong UpdatePanel, bạn có thể tìm thấy câu trả lời ở đó (ngoài ra, hãy tìm một số xhtml không chính xác, như các phần tử đã đóng không chính xác).

+0

Đây là nó! Nếu bạn nhận thấy bên trong mẫu tiêu đề, tôi đã vô tình đóng thẻ, thay vì đóng nó ở chân trang. Ngay khi tôi xóa thẻ được định dạng không đúng, thẻ đã bắt đầu hoạt động. Tôi không có ý tưởng bảng cập nhật là nhạy cảm ... – Neil

+0

+1: UpdatePanel của tôi đã được đặt trực tiếp bên trong một thẻ bảng, và khi di chuyển nó ra khỏi đó mọi thứ bắt đầu làm việc. Cảm ơn! –

0

Xóa chế độ cập nhật = "Luôn luôn" Không đặt bất kỳ thứ gì lên trên và nó sẽ hoạt động.

Một điều nữa là bạn thêm trình quản lý tập lệnh vào trang của mình hoặc kiểm soát không?

Nếu không có trình quản lý tập lệnh, tính năng này sẽ không hoạt động.

+0

Tôi nghĩ chế độ cập nhật mặc định luôn là - tôi đã xóa nó, nhưng nó không tạo ra sự khác biệt. Trình quản lý tập lệnh hiện được thêm vào trang chứ không phải cho điều khiển người dùng. – Neil

Các vấn đề liên quan