私が継承したプロジェクトには、SpendSummContainer というコントロールがありました。このコントロールには、jquery-ui タブ オブジェクトがあります。要件の 1 つは、列のいずれかが編集モードになった後も、選択したタブが選択されたままになることです (列には、DoPostBack を実行して列を編集モードにする「編集」リンクがあります)。
以下はすべて、SpendSummContainer コントロールからのものです。
タブは、次のような標準の jquery-ui タブです。
<div id="tabs">
<ul>
<li><a href="#tabs-1">First Tab</a></li>
<li><a href="#tabs-2">Second Tab</a></li>
<li><a href="#tabs-3">Third Tab</a></li>
</ul>
<div id="tabs-1">Stuff goes here</div>
<div id="tabs-3">Stuff goes here</div>
<div id="tabs-2">Stuff goes here</div>
</div>
次に、フォームに ASP.NET 隠しフィールドがあります。
<asp:HiddenField ID="activeTab" runat="server" />
最後に、次のJavaScriptがあります。
<script type="text/javascript">
$(document).ready(function () {
$("#tabs").tabs({
select: function (event, ui) {
$('#<%= activeTab.ClientID %>').val(ui.index.toString());
}
});
});
</script>
値が設定された後に値を警告することにより、隠しフィールドが正しく設定されていることを確認しました。
問題は、DoPostBack が実行されると、activeTab.value プロパティが空になることです。
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim selectedTab As string = activeTab.Value
End Sub
だから私の質問は、DoPostBack の後に非表示フィールドの値を維持するにはどうすればよいですか?
ありがとう。