我正在尝试使用 JuiceUI 中的容器控件。到目前为止,我已经玩过手风琴和tabs。它们是很棒的控件,但是我在更新这些控件的“内容”标签中的子控件时遇到了问题。
对于手风琴,有一个 PanelContent 标签,对于选项卡,有一个 TabContent 标签,但为了简单起见,我们将重点放在手风琴上。
在 PanelContent 内部,我有一个标签。我需要用一些信息更新这个标签。由于我无法直接访问控件,因此我尝试将 FindControl 中的控件投射到手风琴本身上。发生 NullReferenceException。我也在 AccordionPanel 上进行了同样的尝试,并且发生了同样的事情。所有这些都是有道理的。
在 VBF 上,一位成员指出该标签是 PanelContent 的子标签。它没有 ID 属性,因此我无法直接从服务器端代码访问。所以我尝试从 AccordionPanel 访问它。我可以,但没有 FindControl 方法。
因此,我不确定如何从该 PanelContent 标记中访问该标签。
不过,当我从 AccordionPanel 中调出 PanelContent 属性时,它有一个名为 InstantiateIn 的方法。它的智能感知描述如下:
Public Sub InstantiateIn(container As System.Web.UI.Control) 由类实现时,定义子控件和模板所属的 System.Web.UI.Control 对象。这些子控件依次在内联模板中定义。
这听起来像我需要的。但我不太确定如何使用它。JuiceUI 文档似乎并不完整,因为我在那里找不到任何关于此的内容。
有什么想法吗,伙计们?
客户端:
<asp:UpdatePanel runat="server">
<ContentTemplate>
<table style="width: 99%;">
<tr>
<td class="style1">
<asp:Label ID="Label1" runat="server" Text="CSO:"></asp:Label>
</td>
<td>
<asp:TextBox ID="txtCSONumber" runat="server" CssClass="UpperCase" Width="115px"></asp:TextBox>
</td>
</tr>
<tr>
<td class="style1">
</td>
<td>
<asp:Button ID="btnRetrieve" runat="server" Height="22px" Text="Retrieve" Width="120px" />
</td>
</tr>
<tr>
<td class="style1">
</td>
<td>
<asp:Label ID="lblMessage" runat="server" ForeColor="Red" Text="N/A" Visible="False"></asp:Label>
</td>
</tr>
</table>
<juice:Accordion ID="accSwrlHddRepl" runat="server">
<juice:AccordionPanel runat="server" Title="HDD Information" ID="pnlHddInfo">
<PanelContent>
<p>
<asp:Label ID="lblOriginalHDD" runat="server" Text="N/A"></asp:Label>
</p>
</PanelContent>
</juice:AccordionPanel>
</juice:Accordion>
</ContentTemplate>
</asp:UpdatePanel>