不能让jqueryui手风琴在回发上保持活跃的指数

时间:2013-04-11 09:40:03

标签: c# asp.net jquery-ui postback accordion

我环顾四周,找到了很多解决方法,但由于某些原因,它对我来说并不适合。

.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#代码,行为也是一样的。所以我确信这不是导致问题的原因。

有谁可以建议这里可能有什么问题?我很难过!

由于

1 个答案:

答案 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);
    }
});