调用了__doPostBack 后,原本控制MenuBar 缩展的function就失效了。要怎么处理、、

解决方案 »

  1.   


    <asp:UpdatePanel runat="server">
        <ContentTemplate>
             <input type="hidden" id="hidvalue" runat="server" />
             <input type="hidden" id="hidtype" runat="server" />
             <input type="hidden" id="hidcurrent" value="1" runat="server" />
     <input type="hidden" id="hidstate" runat="server" />
             <asp:LinkButton ID="linkbtn" runat="server" onclick="linkbtn_Click"></asp:LinkButton>  
        </ContentTemplate>
        </asp:UpdatePanel>
        
    </div>
    <script type="text/javascript">
    <!--
    var MenuBar3 = new Spry.Widget.MenuBar("MenuBar3", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});//执行__doPostBack('linkbtn',''); 后,失效//-->
    </script>
      

  2.   


    页面上的UpdatePanel应该仅仅包容必须的部分,许多时候一个aspx上会有6、7个UpdatePanel(甚至当循环绑定数据时会有上百个,而不是像有些人以为的那样只有一个UpdatePanel)。UpdatePanel内部显然不应该有你不需要刷新的内容。
      

  3.   


    我想你对UpdatePanel的机制有些误解。实际上,不管你的hidden是否放在UpdatePanel内部,页面上任何地方的每一次回发,数据都提交给后台处理。根本不需要把它放在UpdatePanel内部。另外,后台客户用代码执行 UpdatePanelControl.Update() 指令来动态决定到底更新哪一个/哪些UpdatePanel区域,并不一定只是更新触发回发的UpdatePanel区域。