如何在父更新面板内容事件的事件上更新子面板内容?

时间:2011-02-22 05:13:52

标签: asp.net asp.net-ajax c#-3.0

我在父面板树上选择了一个父UpdatePanel树,我正在启用/禁用子UpdatePanel按钮。但它不是为什么? 如何在父更新面板内容事件的事件上更新子面板内容?

<asp:UpdatePanel runat="server" ID="parentPanel" UpdateMode="conditional">
    <ContentTemplate>
      <asp:TreeView id="tree1" runat="server"></asp:TreeView>
        <div id="div_RemitEditor" style="width:225px; display: none;">
            <asp:UpdatePanel ID="childUpdatePanel" runat="server" UpdateMode="Conditional">
                <ContentTemplate>
                    <asp:Button id="btn1" runat="server"></asp:Button>
                    <Content>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
       <asp:TreeView id="tree2" runat="server"></asp:TreeView>
    </ContentTemplate>
</asp:UpdatePanel>

2 个答案:

答案 0 :(得分:0)

指定ChildrenAsTriggers="true"

时,需要在父UpdatePanel上设置UpdateMode="Conditional"

答案 1 :(得分:0)

在您的情况下,如果在 ParentUpdatePanel 中触发回发事件, ChildUpdatePanel 会自动更新。

启用/禁用 btn1 不起作用的唯一原因是您使用的控件不会触发回发事件。因此,您可能希望在客户端更改启用/禁用。

这是我的解决方案。

让我知道它是否有效。

$(document).ready(function () { $('input[type = "checkbox"]').click(function () { $('input[id$="btnChild"]').toggle(); }); });

<asp:ScriptManager ID="MainScriptManager" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel id="parentPanel" runat="server" UpdateMode="Conditional" >
    <ContentTemplate>
        <asp:TreeView ID="tree1" runat="server" ShowCheckBoxes="All">
            <Nodes>
                <asp:TreeNode Checked="true" Expanded="true" Text="Toggle Child Button" >
                    <asp:TreeNode Text="Child" ShowCheckBox="true">
                    </asp:TreeNode>
                </asp:TreeNode> 
            </Nodes>
        </asp:TreeView>
        <div id="div_RemitEditor">
            <asp:UpdatePanel ID="childUpdatePanel" runat = "server">
                <ContentTemplate>
                    <asp:Button ID="btnChild" runat="server" Text = "Child Button"/>
                </ContentTemplate>
            </asp:UpdatePanel>
        </div>
    </ContentTemplate>
</asp:UpdatePanel>

<asp:ScriptManager ID="MainScriptManager" runat="server"> </asp:ScriptManager> <asp:UpdatePanel id="parentPanel" runat="server" UpdateMode="Conditional" > <ContentTemplate> <asp:TreeView ID="tree1" runat="server" ShowCheckBoxes="All"> <Nodes> <asp:TreeNode Checked="true" Expanded="true" Text="Toggle Child Button" > <asp:TreeNode Text="Child" ShowCheckBox="true"> </asp:TreeNode> </asp:TreeNode> </Nodes> </asp:TreeView> <div id="div_RemitEditor"> <asp:UpdatePanel ID="childUpdatePanel" runat = "server"> <ContentTemplate> <asp:Button ID="btnChild" runat="server" Text = "Child Button"/> </ContentTemplate> </asp:UpdatePanel> </div> </ContentTemplate> </asp:UpdatePanel>