Asp.net

在 ASP.NET 回發後保持目前的 jQuery 手風琴窗格打開?

  • January 27, 2010

我在 asp.net aspx weppage 上有一個 jquery 手風琴。在窗格內,我有 asp.net 按鈕。當我點擊按鈕時,我所在的窗格會關閉並重新載入頁面,預設為第一個窗格。我不介意重新載入,但有沒有辦法在重新載入後保持目前窗格打開。現在,我只是在具有手風琴 id 的 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>

您可能會想出一種在更改事件期間擷取活動索引的更有效方法,但這似乎可行。

頁面載入後,它會從隱藏欄位中檢索活動索引並將其儲存在變數中。然後,它使用檢索到的索引和自定義函式初始化手風琴,以觸發 change 事件,該事件在啟動新窗格時將新索引寫入隱藏欄位。

在回發期間,隱藏的欄位值會保留在 ViewState 中,這樣當再次載入頁面時,手風琴就會使用最後點擊的窗格的索引進行初始化。

引用自:https://stackoverflow.com/questions/2148933