C# 不能;查找“;嵌套手风琴内的中继器
我有一个手风琴嵌套在一个手风琴。我不确定你能做到,但你能做到!它起作用了。然而 在内部的手风琴中,我有一个复音器。当我试图设置RepeaterName.DataSource时,我得到一个空引用异常。我试图通过使用this.FindControl强制解决此问题,但仍然没有任何乐趣。后面的代码就是看不到嵌套手风琴中的中继器 我很沮丧,但并不惊讶 我真的不想“取消”这些。我拥有的是作者的手风琴,然后在每个作者窗格中,我拥有他们作品的另一个手风琴 所以,我们有 作者1C# 不能;查找“;嵌套手风琴内的中继器,c#,asp.net,ajaxcontroltoolkit,C#,Asp.net,Ajaxcontroltoolkit,我有一个手风琴嵌套在一个手风琴。我不确定你能做到,但你能做到!它起作用了。然而 在内部的手风琴中,我有一个复音器。当我试图设置RepeaterName.DataSource时,我得到一个空引用异常。我试图通过使用this.FindControl强制解决此问题,但仍然没有任何乐趣。后面的代码就是看不到嵌套手风琴中的中继器 我很沮丧,但并不惊讶 我真的不想“取消”这些。我拥有的是作者的手风琴,然后在每个作者窗格中,我拥有他们作品的另一个手风琴 所以,我们有 作者1 第一条 第二条 作者2 第一
- 第一条
- 第二条
- 第一条
- 第二条
- 第三条
<AjaxToolkit:AccordionPane runat="server" ID="JohnBunyanPane">
<Header> John Bunyan</Header>
<Content>
<AjaxToolkit:Accordion ID="JohnBunyanInternalAccordion" runat="server"
SelectedIndex="-1"
CssClass="accordion"
HeaderCssClass="accordionHeader"
HeaderSelectedCssClass="accordionHeaderSelected"
ContentCssClass="accordionContent"
AutoSize="None"
FadeTransitions="true"
TransitionDuration="250"
FramesPerSecond="40"
RequireOpenedPane="false"
SuppressHeaderPostbacks="true">
<Panes>
<AjaxToolkit:AccordionPane runat="server" ID="GraceAboundingPane">
<Header> Grace Abounding</Header>
<Content>
<div style="overflow-y:scroll;height:450px">
<asp:UpdatePanel ID="GraceAboundingUpdatePanel" runat="server">
<ContentTemplate>
<asp:Repeater ID="GraceAboundingRepeater" runat="server">
<ItemTemplate>
<br />
<span>
<asp:Label ID="GraceAboundingBody" runat="server" Width="100%" Text='<%# Eval("Body")%>'></asp:Label>
</span>
<br />
<asp:Image ID="Image1" runat="server" ImageUrl="~/Images/separator.jpg" />
<br /><br />
</ItemTemplate>
</asp:Repeater>
</ContentTemplate>
</asp:UpdatePanel>
</div>
</Content>
</AjaxToolkit:AccordionPane>
</Panes>
</AjaxToolkit:Accordion>
</Content>
</AjaxToolkit:AccordionPane>
您的
FindControl
可能无法查看AccordionPane。您需要向下遍历顶级(父级)AccordionPane
大概是这样的:
var childAccordionPane = (AccordionPane)parentAccordionPane.FindControl("childAccordionPaneId");
var repeater = (Repeater)childAccordionPane.FindControl("repeaterId");
我们可以让它编译并工作,如果给你的标记来验证代表每个控件ID的字符串是否正确。你能提供多一点代码吗?你能访问内部accordion吗?Garrison,很抱歉耽搁了。我在这里有几天没空。从概念上讲,我明白你在说什么。当我尝试实现它时,“(AccordianPane)”在代码隐藏中没有被识别。表示它不是可识别的命名空间。我需要一个using语句来获取库吗?好的。。。我得到了参考资料,所以它建立了。仍然得到一个空引用异常,但我喜欢这个解决方案,并将继续使用它,直到我得到它去。如果你给我你的ASPX标记,我应该能够帮助你找到它准确。
var childAccordionPane = (AccordionPane)parentAccordionPane.FindControl("childAccordionPaneId");
var repeater = (Repeater)childAccordionPane.FindControl("repeaterId");