C#Asp.net Ajaxcontroltoolkit多个手风琴面板。如果在第一个面板中选中复选框,则显示或隐藏最后一个面板
我有五个手风琴面板。仅当在第一个面板中选中复选框时,才应显示最后一个面板。在每个Accordion面板中,我都有一个UpdatePanel,其中我有ContentTemplate,其中包含特定于该Accordion面板的控件和提交按钮。我添加UpdatePanel的原因是,当我更新特定面板时,它不会影响其他accordion面板 问题是,我需要切换最后一个手风琴面板显示,这取决于是否选中了第一个面板中的复选框并单击了提交按钮。在代码隐藏中,在btnSubmit1事件中…我有一个代码,它说明是否选中了复选框…Pane2.Visible=true,else Pane2.Visible=false。由于某些原因,它仍然显示最后一个面板 我不知道我哪里做错了…请建议 谢谢!C#Asp.net Ajaxcontroltoolkit多个手风琴面板。如果在第一个面板中选中复选框,则显示或隐藏最后一个面板,ajax,updatepanel,ajaxcontroltoolkit,accordion,Ajax,Updatepanel,Ajaxcontroltoolkit,Accordion,我有五个手风琴面板。仅当在第一个面板中选中复选框时,才应显示最后一个面板。在每个Accordion面板中,我都有一个UpdatePanel,其中我有ContentTemplate,其中包含特定于该Accordion面板的控件和提交按钮。我添加UpdatePanel的原因是,当我更新特定面板时,它不会影响其他accordion面板 问题是,我需要切换最后一个手风琴面板显示,这取决于是否选中了第一个面板中的复选框并单击了提交按钮。在代码隐藏中,在btnSubmit1事件中…我有一个代码,它说明是否选
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"/>
<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>