2011-07-12 8 views
8

Mam panel aktualizacji, który ma parametr UpdateMode of Conditional, a ChildrenAsTriggers ma wartość false. Chcę tylko kilka kontrole powodują asynchronicznego odświeżenie strony:Nie można znaleźć kontrolki z identyfikatorem dla wyzwalacza w 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> 

otrzymuję następujący błąd, gdy próbuję i załadować tej strony:

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

Ponieważ moją kontrolą btnAddSomething jest w peryferyjnym i moc nie być tam od razu działa tak, jak to jest nieistniejące. Jak mogę to obejść?

Odpowiedz

12

Ponieważ kontrola jest w repeater control i jest poza zakresem do Trigger collection. Nawiasem mówiąc, nie musisz add trigger, ponieważ kontrolka przycisku jest już w urządzeniu UpdatePanel, zostanie zaktualizowana po kliknięciu przycisku.

Edytuj: Istnieje rozwiązanie, jeśli naprawdę chcesz zaktualizować aktualizację updPnlMain updatepanel. Możesz umieścić w innym updatepanel i umieścić swój przycisk w tym panelu. na przykład

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

a następnie po prostu wywołać metodę updPnlMain.Update(); w btnAddSomething_Click imprezy.

Będzie to faktycznie zrobić to, czego szukasz :)

+1

Nie, jeśli ChildrenAsTriggers = false ... co jest to, co powiedziałem w pytaniu. – Dismissile

+0

W jaki sposób mogę sprawić, by mój wzmacniacz kontrolował dzieci, aby znalazły się w zasięgu? – Dismissile

+0

Chcesz tylko zaktualizować UpdatePanel updPnlMain, onclick przycisku? –

Powiązane problemy