[英]Ajax Toolkit Nested accordion find control
I am having a nested accordion and i want to find control inside it. 我有一个嵌套的手风琴,我想在其中找到控件。
Here is the Html Code, 这是HTML代码,
<div>
<div>
<%--First Level--%>
<cc1:Accordion ID="accorFirst" runat="server" RequireOpenedPane="false" SelectedIndex="-1"
HeaderCssClass="header-first" HeaderSelectedCssClass="header_selected-first" ContentCssClass="content" ViewStateMode="Enabled" OnItemDataBound="AccordionFirstItemDataBound">
<HeaderTemplate>
<%#Eval("Name") %>
</HeaderTemplate>
<ContentTemplate>
<%--Second Level--%>
<asp:HiddenField ID="hdnIDFirst" runat="server" Value='<%#Eval("Id") %>' />
<cc1:Accordion ID="accorSecond" runat="server" RequireOpenedPane="false" SelectedIndex="-1"
HeaderCssClass="header-second" HeaderSelectedCssClass="header_selected-second" ContentCssClass="content" ViewStateMode="Enabled" OnItemDataBound="AccordionSecondItemDataBound">
<HeaderTemplate>
<%#Eval("Name") %>
</HeaderTemplate>
<ContentTemplate>
<asp:HiddenField ID="hdnIDSecond" runat="server" Value='<%#Eval("Id") %>' />
<%--Third Level--%>
<cc1:Accordion ID="accorThird" runat="server" RequireOpenedPane="false" SelectedIndex="-1" ViewStateMode="Enabled"
HeaderCssClass="header-third" HeaderSelectedCssClass="header_selected-third" ContentCssClass="content">
<HeaderTemplate>
<%#Eval("Name") %>
</HeaderTemplate>
<ContentTemplate>
<asp:TextBox ID="txtFirst" CssClass="test-class" runat="server"></asp:TextBox>
</ContentTemplate>
</cc1:Accordion>
</ContentTemplate>
</cc1:Accordion>
</ContentTemplate>
</cc1:Accordion>
</div>
</div>
I want to get value for each "txtFirst" on button click event. 我想获取按钮单击事件中每个“ txtFirst”的值。 Please provide sample code. 请提供示例代码。 Thanks in advance. 提前致谢。
Presently I am using this code and not getting any result 目前,我正在使用此代码,但未得到任何结果
protected void btnSave_Click(object sender, EventArgs e)
{
foreach (var first in accorFirst.Panes)
{
var accorSecond = first.FindControl("accorSecond") as Accordion;
foreach (var second in accorSecond.Panes)
{
var accorThird = second.FindControl("accorThird") as Accordion;
foreach (var third in accorThird.Panes)
{
var txtFirst = third.FindControl("txtFirst") as TextBox;
string dataToSave = txtFirst.Text;
}
}
}
}
You can't access controls inside Accordion's ContentTemplate. 您无法访问Accordion的ContentTemplate中的控件。 Unfortunately, this control doesn't provide a ContentTemplateContainer property as for example UpdatePanel does. 不幸的是,该控件没有提供像UpdatePanel这样的ContentTemplateContainer属性。
Try to place nested Accordions inside Accordion Panes instead of placing them in ContentTemplate. 尝试将嵌套的手风琴放置在“手风琴窗格”中,而不是将它们放置在ContentTemplate中。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.