0

2つの別々のJqueryタブパネルに2つのaspxボタンがあります。アクティブなJqueryタブのインデックスをc#コードビハインドから取得して、そのタブ内のボタンが非表示になるようにします。どんな助けでも大歓迎です。ASP:

    <asp:HiddenField ID="hiddenFGetActiveTab" runat="server"/>
            <button ID="btnGetActiveTab"></button>
            <div id="tabs">
            <ul>        
            <li><a href="#tabs-1"></a></li>        
            <li><a href="#tabs-2"></a></li>
            </ul>
            <div id="tabs-1" style="border: 1px solid #E5E5E5;">
            <asp:UpdatePanel ID="updatePanelSearchCustomer" runat="server" UpdateMode="Conditional">
            <contentTemplate>
            <asp:Button ID="btnCustSearch" runat="server" Text="Search" ToolTip="Click to Search" OnClick="btnCustSearch_Click" />
            <asp:Button ID="btnAddCustomer" runat="server" Text="Add New" CommandName="insert" Visible="True" ToolTip="Add to Workbasket" OnClick="addToWorkBasket_Click" />
            <asp:GridView ID="gridCustSearch" OnRowCreated="gridCustLicSearch_RowCreated runat="server"></asp:GridView>
            </ContentTemplate>
            </asp:UpdatePanel>                 
            </div>
            <div id="tabs-2" style="border: 1px solid #E5E5E5;">
            <asp:Button ID="btnSearchLicense" runat="server" Text="Search" ToolTip="Click to Search" />
            <asp:Button ID="btnAddLicense" runat="server" Text="Add to Workbasket" Visible="False" ToolTip="Add to Workbasket" OnClick="btnAddLicense_Click" />
            <asp:UpdatePanel ID="updatePanelLicenseSearchFields" runat="server" UpdateMode="Conditional">
            <ContentTemplate>
            <asp:GridView ID="gridLicSearch" runat="server" OnRowCreated="gridCustLicSearch_RowCreated"></asp:GridView>
            </ContentTemplate>
            </asp:UpdatePanel>
            </div>
            </div>

JQUERY:

                <link href="../css/jquery-ui-1.9.2.custom.css" rel="stylesheet" />
            <script src="../js/jquery-1.8.3.js"></script>
            <script src="../js/reflection.js"></script>
            <script src="../js/jquery-ui-1.9.2.custom.js"></script>
            <script type="text/javascript">


            $(document).ready(function () {


            $(function () {
            $("#tabs").tabs({ event: "click" });

            });

            $('#btnGetActiveTab').click(function (event) {
            event.preventDefault();
            varTab = $("#tabs").tabs("option", "selected");
            document.getElementById("<%= hiddenFGetActiveTab.ClientID %>").value = varTab;
            //$("#hiddenFGetActiveTab").val(varTab);
            //alert(varTab);
            alert(document.getElementById("<%= hiddenFGetActiveTab.ClientID %>").value);
            });

            function tabChanged(tabIndex) {
            varTab = $("#tabs").tabs("option", "selected");
            $("#hiddenFGetActiveTab").val(varTab);
            alert(document.getElementById("<%= hiddenFGetActiveTab.ClientID %>").value);
            }
            });

C#の背後にあるコード:

                protected void gridCustLicSearch_RowCreated(object sender, GridViewRowEventArgs e)
            if (activeTabIndex == Tab-1)
            {
            //Make First button visible
            //do other stuff


            }
            else if (activeTab == Tab-2)
            {   
            //Make Second button visible
            //do other stuff

            }
4

3 に答える 3

1

<asp:HiddenFieldコードが表示されない場合は、 ...を使用することをお勧めし
ます。タブを変更するときは常に、非表示フィールドを現在のタブのインデックスに設定してください。

次に、コードビハインドで、現在選択されているタブを確認し、必要に応じて有効/無効にすることができます...

簡単な例:
aspxページに次を追加します。

<asp:HiddenField ID="hdnField" runat="server" />

タブを変更する場合(Javascriptで):

function tabChanged(tabIndex)
{
    $("#hdnField").val(tabIndex);
}

CodeBehindの場合:

if (hdnField.Value == "1")
   ....
于 2012-12-30T20:54:31.530 に答える
0

これは役立つかもしれないと思います http://api.jqueryui.com/tabs/#event-activate

タブアクティベーションイベントを処理できる場合は、状態を非表示フィールドに設定するか、サーバーにAjax呼び出しを行ってデータをサーバーセッションに送信できます。

別の方法として、投稿を行うときに、アクティブオプション http://api.jqueryui.com/tabs/#option-activeをチェック して、投稿されたデータにインデックスを追加することができます。

于 2012-12-30T21:04:26.770 に答える
0

推測ui.newTab.index()はトリックを行います。

タブのインデックスを確認し、それに応じてボタンの表示を設定してください。

たとえば、

document.getElementById('<%=Button1.ClientID%>').style.display = 'block'

そのためにサーバー側に行く必要はありません。

于 2012-12-30T21:28:26.020 に答える