gpt4 book ai didi

asp.net - ASP.NET 回发后保持当前 jQuery Accordion Pane 打开?

转载 作者:行者123 更新时间:2023-12-03 21:45:56 25 4
gpt4 key购买 nike

我在 asp.net aspx 网页上有一个 jquery Accordion 。在 Pane 内,我有 asp.net 按钮。当我单击该按钮时,我所在的 Pane 将关闭并重新加载页面,默认为第一个 Pane 。我不介意重新加载,但是有没有办法在重新加载后保持当前 Pane 打开。现在,我只是在带有 Accordion id 的 div 上调用 Accordion() 。

最佳答案

您可以使用隐藏的输入字段在回发期间保留事件的折叠式索引,然后在折叠式的更改事件期间使用 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>

您可能会想出一种更有效的方法来在更改事件期间捕获事件索引,但这似乎有效。

页面加载后,它会从隐藏字段中检索事件索引并将其存储在变量中。然后,它使用检索到的索引和自定义函数来初始化 Accordion ,以触发更改事件,每当激活新 Pane 时,该事件就会将新索引写入隐藏字段。

在回发期间,隐藏字段值会保留在 ViewState 中,以便再次加载页面时, Accordion 会使用最后单击的 Pane 的索引进行初始化。

关于asp.net - ASP.NET 回发后保持当前 jQuery Accordion Pane 打开?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2148933/

25 4 0