0

我环顾四周,找到了许多解决方案,但由于某种原因,它对我不起作用。

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

谁能建议这里可能有什么问题?我难住了!

谢谢

4

1 回答 1

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);
    }
});
于 2013-04-11T10:00:42.717 回答