0

私が継承したプロジェクトには、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 の後に非表示フィールドの値を維持するにはどうすればよいですか?

ありがとう。

4

2 に答える 2

1

イベントに置き換えselectて使用できますか?activateui.newTab.index()

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jqueryui/1.10.3/jquery-ui.min.js"></script>
<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">1 Stuff goes here</div>
    <div id="tabs-2">2 Stuff goes here</div>
    <div id="tabs-3">3 Stuff goes here</div>
</div>
<script type="text/javascript">
    $(document).ready(function () {
        $("#tabs").tabs({
            activate: function (event, ui) {
                $('#<%= activeTab.ClientID %>').val(ui.newTab.index());
            }
        });
    });
</script>
<asp:HiddenField ID="activeTab" runat="server" />
于 2013-07-24T17:10:34.367 に答える