找不到从异步回发创建的嵌套 UpdatePanel
Cannot find Nested UpdatePanel created from async postback
我有一个 UpdatePanel,其中包含一个 ListView。
在 ListView 中,它包含另一个 UpdatePanel。
我想在列表视图中添加一个新行,这意味着新行将有一个 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 是我添加新行之前的数据。
有什么想法吗?
通过在父 UpdatePanel
中使用 ChildrenAsTriggers="true"
解决。
<asp:UpdatePanel ID="updtPnlUser" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">
我有一个 UpdatePanel,其中包含一个 ListView。 在 ListView 中,它包含另一个 UpdatePanel。 我想在列表视图中添加一个新行,这意味着新行将有一个 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 是我添加新行之前的数据。
有什么想法吗?
通过在父 UpdatePanel
中使用 ChildrenAsTriggers="true"
解决。
<asp:UpdatePanel ID="updtPnlUser" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true">