ASP.NET C#JQueryUI動的に作成されたユーザーコントロールで、accordionのインデックスを保存する方法はありますかASP.NET C#JQueryUIどのように動的に作成されたユーザーコントロールのアコーディオンのインデックスを保存するには?
メインのaspxページからn回(ComboBox内の選択した番号に基づいて)n回ダイナミックに作成されるユーザーコントロール内にJQueryUIアコーディオンがあります。 私はメインのaspxページに一度起こるアコーディオンのインデックスを保存するには、次のJavaScriptコードを使用している、私はかつてアコーディオンコントロールごとにこれを持っている:
var activeAccordion1Item = document.getElementById("<%= HFaccordion1.ClientID %>");
var activeAccordion1 = 0;
if (activeAccordion1Item) {
activeAccordion1 = parseInt(activeAccordion1Item.value);
}
$("#accordion1").accordion({
collapsible: true,
heightStyle: "content",
active: activeAccordion1,
activate: function (event, ui) {
var i = $("#accordion1").accordion("option", "active");
var activeAccordion1Item = document.getElementById("<%= HFaccordion1.ClientID %>");
activeAccordion1Item.value = i;
}
});
とのaspxファイル内:
<asp:HiddenField ID="HFaccordion1" runat="server" Value="0" />
私はuser_controlの中で何度も起こる可能性のあるこの同じアプローチを使用しましたが、それも機能しますが、保存されたインデックスは常に最初のアコーディオンからのものであり、残りは共有されます。 したがって、accordion1にインデックス2、accordion2にインデックス1があり、コントロールがポストバックを引き起こした場合、ポストバック後に、accordion1とaccordion2の両方がインデックス2をアクティブにして表示されます。
ダイナミックに作成されたアコーディオンに対して、互いに独立して機能するように、上記のコードを変更するにはどうすればよいですか?
はい私はすべてのアコーディオンにJqueyUIスタイリングがあるようにしました。しかし、私はそれをactivate関数で行うことはできません。したがって、すべてのアコーディオンは1つのアクティブなインデックスを共有します。 – user7792598
@ user7792598私は[jsfiddle](https://jsfiddle.net/ali_soltani/d15qsemj/)を作成しました。これをやりたいですか? –
こんにちはアリ、それは私がしたいことではありません。あなたの例にはポストバックは含まれていません。私は自分のWebサイトで試しましたが、ポストバックの後、すべてのアコーディオンが隠された状態に戻ります。私はポストバックの後にインデックスを覚えておくために、それぞれ異なるアコーディオンが必要です。 – user7792598