【发布时间】:2015-09-25 07:00:19
【问题描述】:
我在如下窗格中使用Accordion 和HiddenField 和另一个Accordion:
<asp:Accordion ID="accFuncPerm" runat="server" HeaderCssClass="accheaderfun"
ContentCssClass="acccontfun" OnItemDataBound="accFuncPerm_ItemDataBound"
RequireOpenedPane="false" SelectedIndex="-1">
<headertemplate>
<%#DataBinder.Eval(Container.DataItem, "nmFuncionalidade")%>
</headertemplate>
<contenttemplate>
<asp:HiddenField ID="hfIDF" runat="server" Value='<%#DataBinder.Eval(Container.DataItem, "idFuncionalidade")%>' />
<asp:Accordion ID="accPagPerm" runat="server" HeaderCssClass="accheader" ContentCssClass="acccont"
RequireOpenedPane="false" SelectedIndex="-1" HeaderSelectedCssClass="accheadersel"
OnItemCommand="accPagPerm_OnItemCommand" SuppressHeaderPostbacks="false" OnItemDataBound="accPagPerm_ItemDataBound">
<HeaderTemplate>
<asp:LinkButton runat="server" Text='<%#DataBinder.Eval(Container.DataItem, "nmPagina")%>'
CommandName="Select" CommandArgument='<%#DataBinder.Eval(Container.DataItem, "idPagina")%>' Width="100%" />
</HeaderTemplate>
<ContentTemplate>
<asp:HiddenField ID="hfID" runat="server" Value='<%#DataBinder.Eval(Container.DataItem, "idPagina")%>' />
<asp:Table ID="tblGrupoAcaoPagina" runat="server" CssClass="gv" GridLines="Both">
<asp:TableHeaderRow ID="tblHeader" runat="server">
</asp:TableHeaderRow>
</asp:Table>
</ContentTemplate>
</asp:Accordion>
</contenttemplate>
</asp:Accordion>
在 PostBack 上,我访问其选定的窗格:
AccordionPane pane = accFuncPerm.Panes[accFuncPerm.SelectedIndex];
但是,当我试图找到它的控件时,它失败了。
Accordion accPagPerm = (Accordion)pane.FindControl("accPagPerm");
pane = accPagPerm.Panes[int.Parse(txtAcc.Text)];
HiddenField hf = (HiddenField)pane.FindControl("hfID");
我发现的面板内容为空,hiddenfield 为 null。
有谁知道原因,可以给我解决办法吗?
【问题讨论】: