我正在尝试使用JuiceUI中的容器控件。到目前为止,我已经使用了accordion和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)When 由类实现,定义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>
答案 0 :(得分:0)
根据我的理解,还有一个尚未发布的JuiceUI的挂起更新,它为您的场景实现了'FindControl'方法。代码在它的源存储库中,但是nuget更新尚未发布。
您可以尝试一个名为Brew的分叉,它已具有该功能,并且是JuiceUI的近亲。