2011-07-12 24 views
8

Tôi có bảng cập nhật có UpdateMode of Conditional và ChildrenAsTriggers được đặt thành false. Tôi chỉ muốn có một vài điều khiển gây ra một postback không đồng bộ:Không thể tìm thấy điều khiển có ID cho trình kích hoạt trong UpdatePanel

<asp:UpdatePanel ID="updPnlMain" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> 
<ContentTemplate> 

     // ... 
     <asp:Repeater ID="rptListData" runat="server"> 
      <ItemTemplate> 
       <asp:Button ID="btnAddSomething" runat="server" OnClick="btnAddSomething_Click" /> 
      </ItemTemplate> 
     </asp:Repeater> 
     // ... 
</ContentTemplate> 
<Triggers> 
    <asp:AsyncPostBackTrigger ControlID="btnAddSomething" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 

Tôi nhận được lỗi sau khi tôi cố gắng và tải trang này:

A control with ID 'btnAddSomething' could not be found for the trigger in UpdatePanel 'updPnlMain'. 

Kể từ kiểm soát btnAddSomething của tôi là trong một repeater và might không ở đó ngay lập tức nó hành động như nó không tồn tại. Làm sao để tôi có được xung quanh này?

Trả lời

12

Do kiểm soát của bạn nằm trong số repeater control và nằm ngoài phạm vi của Trigger collection. Bằng cách này bạn không cần phải add trigger vì nút điều khiển của bạn đã có trong UpdatePanel, nó sẽ cập nhật khi bạn nhấp vào nút.

Chỉnh sửa: Có giải pháp nếu bạn thực sự muốn cập nhật bảng cập nhật updPnlMain của mình. Bạn có thể đặt trong một updatepanel khác và đặt nút của bạn trong bảng điều khiển đó. ví dụ.

<asp:UpdatePanel ID="updButton" runat="server" UpdateMode="Conditional"> 
    <asp:Button ID="btnAddSomething" runat="server" OnClick="btnAddSomething_Click" /> 
</ContentTemplate> 

và sau đó chỉ cần gọi phương thức updPnlMain.Update(); trong sự kiện btnAddSomething_Click.

Nó sẽ thực sự làm những gì bạn đang tìm kiếm :)

+1

Không nếu ChildrenAsTriggers = false ... đó là những gì tôi đã nói trong câu hỏi. – Dismissile

+0

Làm cách nào để kiểm soát lặp lại trẻ em trong phạm vi? – Dismissile

+0

Bạn chỉ muốn cập nhật UpdatePanel updPnlMain, onclick của nút? –

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