0

我在两个单独的 Jquery 选项卡面板上有两个 aspx 按钮。我想从后面的 c# 代码中获取活动 Jquery 选项卡的索引,以便该选项卡中的按钮变得不可见。任何帮助将不胜感激。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>

查询:

                <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);
}

在代码隐藏中:

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

猜猜ui.newTab.index()会成功的。

请检查标签索引并相应地为您的按钮设置可见性。

比如像,

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

你不必为此去服务器端。

于 2012-12-30T21:28:26.020 回答
0

我认为这可能会有所帮助 http://api.jqueryui.com/tabs/#event-activate

如果您可以处理选项卡激活事件,您可以设置一个带有状态的隐藏字段,或者对服务器进行 Ajax 调用以将数据发送到服务器会话。

另一种方法可能是,当您发布帖子时,检查 Active 选项 http://api.jqueryui.com/tabs/#option-active 以将索引添加到发布的数据。

于 2012-12-30T21:04:26.770 回答