Не удается найти вложенную панель обновления, созданную из асинхронной обратной передачи - PullRequest
0 голосов
/ 02 июля 2018

У меня есть UpdatePanel, в которой он содержит ListView. В ListView он содержит еще одну панель обновления. Я хотел добавить новую строку внутри списка, это означает, что новая строка будет иметь UpdatePanel. Но я получаю следующую ошибку:

0x800a139e - JavaScript runtime error: Sys.InvalidOperationException: Could not 
find UpdatePanel with ID 'PageContent_lvwUser_updtPnlUserRole_1'. If it is 
being updated dynamically then it must be inside another UpdatePanel.

Мой код:

<asp:UpdatePanel ID="updtPnlUser" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false">
    <ContentTemplate>            
        <asp:ListView ID="lvwUser" runat="server" 
             InsertItemPosition="FirstItem" 
             OnItemDataBound="lvwUser_ItemDataBound" 
             OnItemInserting="lvwUser_ItemInserting" 
             OnItemDeleting="lvwUser_ItemDeleting"                           
             OnPagePropertiesChanging="lvwUser_PagePropertiesChanging" 
             OnPagePropertiesChanged="lvwUser_PagePropertiesChanged">
             <LayoutTemplate>
             ...
             </LayoutTemplate>
             <ItemTemplate>
             ...
                 <asp:UpdatePanel ID="updtPnlUserRole" runat="server">
                     <ContentTemplate>     
                         <asp:ListView ID="lvwUserRole" runat="server" 
                             InsertItemPosition="FirstItem" 
                             OnItemDataBound="lvwUserRole_ItemDataBound" 
                             OnItemInserting="lvwUserRole_ItemInserting" 
                             OnItemDeleting="lvwUserRole_ItemDeleting">
                             <LayoutTemplate>
                             ...
                             </LayoutTemplate>
                         </asp:ListView>
                     </ContentTemplate>
                </asp:UpdatePanel>
             </ItemTemplate>
             ...
         </asp:ListView>
     </ContentTemplate>
 </asp:UpdatePanel>

Поскольку InsertItem находится в первой позиции, индекс 0 будет содержать новую строку. Итак, индекс 1 - это данные, прежде чем я добавлю новую строку.

Есть идеи?

1 Ответ

0 голосов
/ 03 июля 2018

Решено с помощью ChildrenAsTriggers="true" в родительском UpdatePanel.

<asp:UpdatePanel ID="updtPnlUser" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...