0

私は周りを見回して、これに対する多くの解決策を見つけましたが、何らかの理由でうまくいきません。

.NET 4、c#

私は 3 つのセクションを持つアコーディオンを持っています。私の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 に答える