繁体   English   中英

ASP.NET中的Juice UI选项卡-如何在代码隐藏中获取活动的选项卡ID

[英]Juice UI Tabs in ASP.NET - How to get active tab ID in code-behind

我正在ASP.NET中使用Juice UI选项卡功能,在代码隐藏中动态构建选项卡,并发现调用OnActiveTabChanged时无法获取活动选项卡的索引/ ID。 所以这就是我的ASPX页面上的所有内容:

juice:Tabs ID="dataTabs" runat="server" AutoPostBack="true" OnActiveTabChanged="dataTabs_ActiveTabChanged" /

并且当dataTabs_ActiveTabChanged触发时,我找不到单个属性,该属性实际上具有所选选项卡的索引/ ID。 dataTabs.Active和dataTabs.Selected始终为0

选择给定的选项卡时,我需要在服务器端采取一些措施,但要这样做,必须能够知道实际单击了哪个选项卡。 我在客户端上玩过各种jQuery脚本,以将隐藏对象设置为选项卡的值(经过测试的activate和beforeActivate事件),但它们从未触发(将警报放置在永不触发的jQuery函数中),我认为是因为我正在运行控制服务器端?

编辑:根据要求添加我的代码示例

本质上是页面加载时我如何填充选项卡的方法:

protected void loadAndPopulateTabs()
    {
        Juice.TabPage utilityTab = new Juice.TabPage();
        utilityTab.Title = "Utilities";
        utilityTab.ID = "utTab";

        string utilTabText = "sometext";
        dataTabContent dtcUT = new dataTabContent(utilTabText);

        utilityTab.TabContent = dtcUT;
        dataTabs.TabPages.Add(utilityTab);
}

目前,我在OnActiveTabChanged处理程序中隐藏的代码是相当空的,我在四处玩耍以查看可用于获取所选标签的属性:

protected void dataTabs_ActiveTabChanged(object sender, EventArgs e)
{
   int currentTab = dataTabs.Active;
}

我基本上是在那一行上打断,看看是否可以找到一种方法来告诉我选择了哪个选项卡(sender.Active也总是显示0)。

有什么想法吗?

应该阅读此http://msdn.microsoft.com/en-us/library/ms178472(v=vs.100).aspx
有页面生命周期
如果您想在后台添加标签,请在init事件中添加

protected void PageInit(object o, EventArgs e){
    loadAndPopulateTabs();
}

protected void loadAndPopulateTabs()
    {
        Juice.TabPage utilityTab = new Juice.TabPage();
        utilityTab.Title = "Utilities";
        utilityTab.ID = "utTab";

        string utilTabText = "sometext";
        dataTabContent dtcUT = new dataTabContent(utilTabText);

        utilityTab.TabContent = dtcUT;
        dataTabs.TabPages.Add(utilityTab);
}

找到了解决该问题的方法...我几天前就搞混了该解决方案,但无法使其正常工作,但由于某种原因,今天就解决了。 不知道以前我在做什么错。 无论如何,解决方案是我发现很多人必须使用jQuery选项卡,将选定的选项卡存储在隐藏字段中并在后面的代码中访问该值。 我将此添加到我的页面:

     <script type="text/javascript">
         $(function () {
             $('#dataTabs').tabs({
                 beforeActivate: function (event, ui) {
                     $('#<%=selectedTab.ClientID %>').val(ui.newPanel.attr('id'));
                 }
             });
         });
         </script>

和:

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

当dataTabs_ActiveTabChanged触发时,selectedTab的值就是所选标签的名称。 踢自己之前错过这个。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM