Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 不能;查找“;嵌套手风琴内的中继器_C#_Asp.net_Ajaxcontroltoolkit - Fatal编程技术网

C# 不能;查找“;嵌套手风琴内的中继器

C# 不能;查找“;嵌套手风琴内的中继器,c#,asp.net,ajaxcontroltoolkit,C#,Asp.net,Ajaxcontroltoolkit,我有一个手风琴嵌套在一个手风琴。我不确定你能做到,但你能做到!它起作用了。然而 在内部的手风琴中,我有一个复音器。当我试图设置RepeaterName.DataSource时,我得到一个空引用异常。我试图通过使用this.FindControl强制解决此问题,但仍然没有任何乐趣。后面的代码就是看不到嵌套手风琴中的中继器 我很沮丧,但并不惊讶 我真的不想“取消”这些。我拥有的是作者的手风琴,然后在每个作者窗格中,我拥有他们作品的另一个手风琴 所以,我们有 作者1 第一条 第二条 作者2 第一

我有一个手风琴嵌套在一个手风琴。我不确定你能做到,但你能做到!它起作用了。然而

在内部的手风琴中,我有一个复音器。当我试图设置RepeaterName.DataSource时,我得到一个空引用异常。我试图通过使用this.FindControl强制解决此问题,但仍然没有任何乐趣。后面的代码就是看不到嵌套手风琴中的中继器

我很沮丧,但并不惊讶

我真的不想“取消”这些。我拥有的是作者的手风琴,然后在每个作者窗格中,我拥有他们作品的另一个手风琴

所以,我们有

作者1

  • 第一条

  • 第二条

作者2

  • 第一条

  • 第二条

  • 第三条

等等

编辑:添加标记和代码隐藏

                        <AjaxToolkit:AccordionPane runat="server" ID="JohnBunyanPane">
                        <Header>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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");