我环顾四周,找到了很多解决方法,但由于某些原因,它对我来说并不适合。
.NET 4,c#
我手风琴有三个部分。在我的c#代码后面加载部分我有......
if (!IsPostBack)
{
MembershipUser websiteUser = Membership.GetUser();
ProfileCommon websiteUserProfile = Profile.GetProfile(websiteUser.UserName);
if (websiteUserProfile.PrimaryCompany == "BEL")
hiddenAccordionIndex.Value = "1";
}
这设置了初始活动部分。这很好用。
我现在想要的是,如果活动部分切换为0,然后在页面上发生回发,我希望手风琴将活动部分保持为0。
实际上发生了什么,是手风琴转回1。
我的jquery ......
var currentIndex = $("#<%= hiddenAccordionIndex.ClientID %>").val();
$("#accordion").accordion({
heightStyle: "content",
collapsible: true,
active: parseInt(currentIndex),
change: function (event, ui) {
var newIndex = $(this).children("h3").index(ui.newHeader);
$("#<%= hiddenAccordionIndex.ClientID %>").val(newIndex);
}
});
即使我删除了设置初始活动部分的c#代码,行为也是一样的。所以我确信这不是导致问题的原因。
有谁可以建议这里可能有什么问题?我很难过!
由于
答案 0 :(得分:2)
我有答案。
更改不是一个事件。相反,我使用激活,现在正在使用。
我见过的所有解决方案都说明了更改事件,也许这是旧版本!
新代码......
var currentIndex = $("#<%= hiddenAccordionIndex.ClientID %>").val();
$("#accordion").accordion({
heightStyle: "content",
collapsible: true,
active: parseInt(currentIndex),
activate: function (event, ui) {
var newIndex = $(this).children("h3").index(ui.newHeader);
$("#<%= hiddenAccordionIndex.ClientID %>").val(newIndex);
}
});