c# - Can't access Ajax Accordion Pane's Content -
i'm using accordion hiddenfield , accordion in it's panes below:
<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> on postback access selected pane:
accordionpane pane = accfuncperm.panes[accfuncperm.selectedindex];
but, when try find controls fails.
accordion accpagperm = (accordion)pane.findcontrol("accpagperm"); pane = accpagperm.panes[int.parse(txtacc.text)]; hiddenfield hf = (hiddenfield)pane.findcontrol("hfid"); the panel find comes empty content , hiddenfield null.
do know reason, , please provide me solution?
the accordion has 2 accordioncontentpanel instances in controls, 1 header, , other content. content accordioncontentpanel has values looking for:
protected void accfuncperm_itemcommand(object sender, commandeventargs e) { accordioncontentpanel acpcontent; accordionpane apane = accfuncperm.panes[accfuncperm.selectedindex]; control[] controls; //find accpagperm controls = new control[apane.controls.count]; apane.controls.copyto(controls, 0); acpcontent = (accordioncontentpanel)controls.single(c => c.findcontrol("accpagperm") != null); accordion accpagperm = (accordion)acpcontent.findcontrol("accpagperm"); //find hfid apane = accpagperm.panes[int.parse(txtacc.text)]; controls = new control[apane.controls.count]; apane.controls.copyto(controls, 0); acpcontent = (accordioncontentpanel)controls.single(c => c.findcontrol("hfid") != null); hiddenfield hf = (hiddenfield)acpcontent.findcontrol("hfid"); } you need check nulls , data types expected, started.
on side note: rid of controls variable, need calculate id of content accordioncontentpanel. seems follow format <accordion.id>_pane_<paneindex>_content <accordian.id> id of accordion owns panel , <paneindex> index of panel in accordion's panel property.
Comments
Post a Comment