嵌套更新面板问题

时间:2010-09-18 11:11:09

标签: asp.net asp.net-ajax

我在父面板中有两个嵌套的UpdatePanle和一个按钮和一个编辑器,在子面板中有一个GridView。

<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
    <ContentTemplate>
        <asp:Button ID="btn_UsersList" runat="server" 
            OnClick="btn_UsersList_Click" Text="users" />
        <asp:UpdatePanel ID="UpdatePanel2" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
                <asp:GridView ID="GridView_UsersList" runat="server">
                </asp:GridView>
            </ContentTemplate>
            <Triggers>
                <asp:AsyncPostBackTrigger ControlID="btn_UsersList" 
                    EventName="Click" />
            </Triggers>
        </asp:UpdatePanel>
        <fckeditorv2:fckeditor id="FCKeditor_Message" runat="server" 
            basepath="~/fckeditor/"></fckeditorv2:fckeditor>
    </ContentTemplate>
</asp:UpdatePanel>

我想在单击按钮时更新子面板但不更新父UpdatePanel。我可以这样做吗?我的代码有什么问题? 提前谢谢

2 个答案:

答案 0 :(得分:1)

设置ChildrenAsTriggers="false",然后在每个UpdatePanel内 使用<triggers>标记(我通常将它放在我的标记下方) ContentTemplate)手动指定更新面板的哪些控件 更新。我几乎总是使用这个,所以我知道是什么导致我的 回发,我没有一些我不知道的事情。

示例:

<UpdatePanel id="Parent" ChildrenAsTriggers="false" UpdateMode="conditional">
    <ContentTemplate>
        <UpdatePanel id="Child" ChildrenAsTriggers="false" UpdateMode="conditional">
            <ContentTemplate>
                <!-- Content Here -->
            </ContentTemplate>
            <Triggers>
                <!-- Updates only the child panel -->
                <asp:AsynchronousPostBackTrigger 
                     ControlID="btnChangeChildPanel" EventName="Click" />
             </Triggers>
        </UpdatePanel>
        <asp:Button id="btnChangeChildPanel" runat="server"
            OnClick="btnChangeChildPanel_OnClick" />
    </ContentTemplate>
    <Triggers>
        <!-- Add parent triggers here -->
    </Triggers>
</UpdatePanel>

答案 1 :(得分:0)

@sohren

您可能需要在某些时候取消阻止UI。您可以使用pageLoad()功能来实现此目的。如果在阻止UI后您的AJAX请求成功运行,则在收到响应并更新页面时将调用pageLoad()函数。这是您可以取消阻止UI的地方。