我有一个jQuery手风琴在asp.net aspx weppage。在窗格中,我有asp.net按钮。当我点击按钮,我所在的窗格,关闭并重新加载页面,默认为第一个窗格。我不介意重新加载,但是有一种方法可以在重新加载后保持当前窗格打开。现在,我只是用手风琴的名字把手风琴()拨到一个div上。
解决方法
您可以使用隐藏的输入字段在回发期间保留活动的手风琴索引,然后在手风琴的更改事件期间使用javascript填充它。
<asp:HiddenField ID="hidAccordionIndex" runat="server" Value="0" /> <script language="javascript" type="text/javascript"> $(function(){ var activeIndex = parseInt($('#<%=hidAccordionIndex.ClientID %>').val()); $("#accordion").accordion({ autoHeight:false,event:"mousedown",active:activeIndex,change:function(event,ui) { var index = $(this).children('h3').index(ui.newHeader); $('#<%=hidAccordionIndex.ClientID %>').val(index); } }); }); </script>
您可能想出在更改事件中捕获活动索引的更有效的方法,但这似乎是有效的。
当页面加载时,它从隐藏字段中检索活动索引并将其存储在变量中。然后,使用检索到的索引和自定义函数来初始化手风琴,以便在激活新窗格时,将更改事件触发到新的索引到隐藏字段。
在回发期间,隐藏的字段值将保留在ViewState中,以便当页面再次加载时,手风琴将使用点击的最后一个窗格的索引进行初始化。