嵌套折叠控件在 Page_Load 上报告为空

问题描述 投票:0回答:1

我在嵌套的手风琴中有一个下拉列表。

在页面加载时,我想将该下拉列表与提供的数据绑定。但是,当该方法尝试查找下拉列表控件时,它找不到它并将其视为空实体。这会破坏页面加载。

这是我引用的代码示例:

        <Panes>
          <ajaxToolkit:AccordionPane ID="apPane1" runat="server" Visible="true">
             <Header>
                <span class="AccordionLink">Header1</span>
             </Header>
             <Content>
                 <table style="width: 75%">
                    <tr>
                       <td style="padding: 0px 0px 0px 15px">
                           <asp:Panel ID="pnllandingpanel" runat="server"> 
                              <ajaxToolkit:Accordion ID="AccordionChartConfig" runat="server" SelectedIndex="0" RequireOpenedPane="false" CssClass="accordian" HeaderCssClass="headerCssClass" FadeTransitions="true" TransitionDuration="500" AutoSize="None" ContentCssClass="contentCssClass" HeaderSelectedCssClass="headerSelectedCssClass">
                                  <Panes>
                                    <ajaxToolkit:AccordionPane ID="apPanelLevel2" runat="server">
                                          <Header>
                                               <span class="AccordionLink">Link2</span>
                                          </Header>
                                          <Content>
                                             <asp:DropDownList ID="ddlLoadValue" runat="server"></asp:DropDownList>
                                          </Content>
                                          </Header>
                                   </ajaxToolkit:AccordionPane>
                                 </Panes>
                          </td>
                       </tr>
                    </table>
              </Content>
        </ajaxToolkit:AccordionPane>
</Accordion>

我的 C# 代码很简单:

ddlLoadValue = BindDDLValue(ddlLoadValue);

背后的代码有效。我不担心这个。

如果我不需要在页面加载时加载下拉列表,它就可以正常工作。当我进行新条目时会发生这种情况。但是,当我尝试加载已保存的条目时,我需要填充嵌套手风琴中的控件。

我尝试确保手风琴已启用,并且所选索引是带有下拉列表的索引。我期待程序找到控件并填充下拉列表。

c# asp.net webforms
1个回答
0
投票

解决方案是使用 FindControl 手动浏览巢。

    AjaxControlToolkit.AccordionPane optionspane = (AjaxControlToolkit.AccordionPane)Master.FindControl("MainContent").FindControl("apPanel").FindControl("AccordionChartConfig").FindControl("apPanelLevel2");
    DropDownList dXAxisFormat = (DropDownList)optionspane.FindControl("ddlLoadValue");
       

执行此操作后我能够正确渲染页面。

© www.soinside.com 2019 - 2024. All rights reserved.