C#Asp.net Ajaxcontroltoolkit多个手风琴面板。如果在第一个面板中选中复选框,则显示或隐藏最后一个面板

C#Asp.net Ajaxcontroltoolkit多个手风琴面板。如果在第一个面板中选中复选框,则显示或隐藏最后一个面板,ajax,updatepanel,ajaxcontroltoolkit,accordion,Ajax,Updatepanel,Ajaxcontroltoolkit,Accordion,我有五个手风琴面板。仅当在第一个面板中选中复选框时,才应显示最后一个面板。在每个Accordion面板中,我都有一个UpdatePanel,其中我有ContentTemplate,其中包含特定于该Accordion面板的控件和提交按钮。我添加UpdatePanel的原因是,当我更新特定面板时,它不会影响其他accordion面板 问题是,我需要切换最后一个手风琴面板显示,这取决于是否选中了第一个面板中的复选框并单击了提交按钮。在代码隐藏中,在btnSubmit1事件中…我有一个代码,它说明是否选

我有五个手风琴面板。仅当在第一个面板中选中复选框时,才应显示最后一个面板。在每个Accordion面板中,我都有一个UpdatePanel,其中我有ContentTemplate,其中包含特定于该Accordion面板的控件和提交按钮。我添加UpdatePanel的原因是,当我更新特定面板时,它不会影响其他accordion面板

问题是,我需要切换最后一个手风琴面板显示,这取决于是否选中了第一个面板中的复选框并单击了提交按钮。在代码隐藏中,在btnSubmit1事件中…我有一个代码,它说明是否选中了复选框…Pane2.Visible=true,else Pane2.Visible=false。由于某些原因,它仍然显示最后一个面板

我不知道我哪里做错了…请建议

谢谢!
Jini

我确实希望看到您的代码,但我希望看到,这是因为您在每个
AccordionPanel
中都有一个
UpdatePanel
。一旦事件发生在一个
UpdatePanel
中,ASP.NET将不会运行代码处理附加到另一个
UpdatePanel
的事件

首先,我会取出所有的
UpdatePanel
s,看看您的代码是否能按预期工作。然后,我会添加一个
UpdatePanel
,将整个
accordio
包装起来,看看您的代码是否仍然有效


如果您确实决定需要5个
UpdatePanel
s,请查看
UpdatePanel
部分。您将能够提供
复选框的ID,以强制其他关联的
UpdatePanel
回发。

我通过添加外部更新面板修复了此问题…并删除了面板2的UpdatePanel。虽然还没有完全测试过,但到目前为止看起来还不错

protected void Button1_Click(object sender, EventArgs e) {
        if (Attorney.Checked) {
            Pane2.Visible = true;
        } else {
            Pane2.Visible = false;
        }
        //Message1.Text = Age1.Text;
    }

小组1

年龄:
律师:

小组2



我已经添加了代码。我尝试过添加触发器等。似乎没有任何效果。是的。我在UpdatePanel下使用JQuery来确定用户是否做了任何更改。除非他们真的启动了第一个面板按钮。在不删除UpdatePanel的情况下,我如何使其工作?在Pane2的
UpdatePanel
中的
如何?我在Pane2的UpdatePanel中也尝试过。我得到“在UpdatePanel‘UpdatePanel2’中找不到触发器ID为‘Button1’的控件”。这是我所期望的——因为Button1嵌套在AccordionPanel中,所以Pane2看不到它。我建议使用jQuery来隐藏它。如果您能提供一个技术解释,说明为什么前一个不起作用,以及您的为什么起作用,那就更好了
protected void Button1_Click(object sender, EventArgs e) {
        if (Attorney.Checked) {
            Pane2.Visible = true;
        } else {
            Pane2.Visible = false;
        }
        //Message1.Text = Age1.Text;
    }
<asp:Content ID="BodyContent" runat="server" ContentPlaceHolderID="MainContent">
<asp:UpdatePanel ID="OuterPanel" UpdateMode="Always" ChildrenAsTriggers="true" runat="server">
<ContentTemplate>
<ajaxToolkit:Accordion ID="Accordion1" CssClass="accordion" SelectedIndex="0" HeaderCssClass="accordionHeader" 
HeaderSelectedCssClass="accordionHeaderSelected" AutoSize="None" RequireOpenedPane="false" ContentCssClass="accordionContent" runat="server"> 
<Panes>   
    <ajaxToolkit:AccordionPane ID="Pane1" runat="server">
    <Header><b>Panel 1</b></Header>
      <Content>            
            <br>
            Age: <asp:textbox id="Age1" runat="server" Width="35" Font-Bold="True" /><br />
            Attorney: <asp:CheckBox ID="Attorney" runat="server" /><br>
            <asp:button ID="Button1" text="Submit" OnClick="Button1_Click"
            runat="server"/><br>
            <asp:label id="Message1" runat="server" ForeColor="White" Font-Size="Small" Font-Bold="True"/>                                                            
        </Content>
    </ajaxToolkit:AccordionPane>        
    <ajaxToolkit:AccordionPane ID="Pane2" runat="server">
        <Header><b>Panel 2</b></Header>
        <Content>                            
                <br>
                <asp:textbox id="Age2" runat="server" Width="35" Font-Bold="True"/>&nbsp;&nbsp;
                <asp:button ID="Button2" text="Submit" onclick="Button2_Click"
                runat="server"/><br><br>
                <asp:label id="Message2" runat="server" ForeColor="White" Font-Size="Small" Font-Bold="True" />                
        </Content>
    </ajaxToolkit:AccordionPane>
    </Panes>
 </ajaxToolkit:Accordion>
</ContentTemplate>