2009-01-29 41 views
6

Tôi gặp một vấn đề khi asp.net của tôi AJAX Cập nhật Bảng điều chỉnh cập nhật nó ám chỉ rằng nội dung ở phía trên cùng của bảng của tôi chứ không phải ở nơi nó thuộc dưới đây là mã của tôi:Cập nhật Bảng điều chỉnh render bảng hàng sai

<tr> 
    <td> 
    </td> 
    <td> 
     <asp:CheckBox ID="ddCheckbox" runat="server" Text="Checkbox" 
      AutoPostBack="true" OnCheckedChanged="ddCheckboxChanged" /> 
    </td> 
</tr> 

    <asp:UpdatePanel ID="uxUpdatePanel" runat="server" RenderMode="Inline" UpdateMode="Conditional"> 
     <ContentTemplate> 
      <tr> 
      <td> 
       Some Field: 
      </td> 
       <td> 
       <asp:TextBox ID="ddSomeField" runat="server" /> 
       </td> 
      </tr> 
      </ContentTemplate> 
      <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddCheckbox" EventName="CheckedChanged" /> 
      </Triggers> 
    </asp:UpdatePanel> 

Trong sự kiện phía máy chủ của tôi, tôi chỉ bật/tắt hộp văn bản.

Trả lời

0

Bạn đã thực hiện nguồn xem để xác nhận rằng nó thực sự hiển thị nó ở vị trí đó trong chính HTML? Các trình duyệt đôi khi sẽ hiển thị các thẻ bên ngoài bảng nếu bảng không đúng định dạng. Nó có vẻ như được định nghĩa đúng trong chính HTML, nhưng một thẻ đóng bị thiếu vv có thể làm cho nó hiển thị theo cách đó.

0

Khi bảng điều khiển cập nhật đăng lại máy chủ, nó sẽ đăng lại mọi thứ (bao gồm cả ViewState). Tại sao không chỉ làm một số javascript đơn giản? Nó sẽ hiệu quả hơn nhiều.

4

Tôi tin rằng đó là cách bạn đang lồng vào bảng Cập nhật. Nếu bạn thay đổi bảng cập nhật thành con của td, thay vì bảng:

<tr> 
    <td> 
    Some Field: 
    </td> 
    <td> 
    <asp:UpdatePanel ID="uxUpdatePanel" runat="server" RenderMode="Inline" UpdateMode="Conditional"> 
     <ContentTemplate> 
     <asp:TextBox ID="ddSomeField" runat="server" /> 
     </ContentTemplate> 
     <Triggers> 
      <asp:AsyncPostBackTrigger ControlID="ddCheckbox" EventName="CheckedChanged" /> 
     </Triggers> 
    </asp:UpdatePanel> 
    </td> 
</tr> 

Bạn nên cố định tất cả.

+0

- Hoặc có thể là con của TR. –

8

1) tạo ra một điều khiển tùy chỉnh updatepanel (copy/paste từ SingingEels)

2) sử dụng kiểm soát updatepanel tùy chỉnh này với một thuộc tính RenderedElement="TBODY"

3) tổ bảng của bạn như sau:

<TABLE> 
    <TR> 
    <TD>outside updatepanel</TD> 
    </TR> 
    <SingingEels:SemanticUpdatePanel ID="myUpdatePanel" runat="server" RenderedElement="TBODY"> 
    <ContentTemplate> 
     <TR> 
     <TD>inside updatepanel - 1th row</TD> 
     </TR> 
     <TR> 
     <TD>inside updatepanel - 2nd row</TD> 
     </TR> 
     <TR> 
     <TD>inside updatepanel - last row</TD> 
     </TR> 
    </ContentTemplate> 
    </SingingEels:SemanticUpdatePanel> 
    <TR> 
    <TD>outside updatepanel</TD> 
    </TR> 
</TABLE> 
Các vấn đề liên quan