C# ASP.NET中的Juice UI选项卡-如何在代码隐藏中获取活动选项卡ID
我正在ASP.NET中使用Juice UI选项卡功能,在代码隐藏中动态构建选项卡,发现调用OnActiveTabChanged时无法获取活动选项卡的索引/ID。以下是我的ASPX页面中的所有内容:C# ASP.NET中的Juice UI选项卡-如何在代码隐藏中获取活动选项卡ID,c#,jquery,asp.net,jquery-ui-tabs,C#,Jquery,Asp.net,Jquery Ui Tabs,我正在ASP.NET中使用Juice UI选项卡功能,在代码隐藏中动态构建选项卡,发现调用OnActiveTabChanged时无法获取活动选项卡的索引/ID。以下是我的ASPX页面中的所有内容: juice:Tabs ID="dataTabs" runat="server" AutoPostBack="true" OnActiveTabChanged="dataTabs_ActiveTabChanged" / 当dataTabs\u ActiveTabChanged激发时,我找不到一个属性实
juice:Tabs ID="dataTabs" runat="server" AutoPostBack="true" OnActiveTabChanged="dataTabs_ActiveTabChanged" /
当dataTabs\u ActiveTabChanged激发时,我找不到一个属性实际具有所选选项卡的索引/ID。dataTabs.Active和dataTabs.Selected始终为0
我需要在选择给定选项卡时在服务器端采取一些操作,但要做到这一点,需要能够知道实际单击了哪个选项卡。我在客户端使用了各种jQuery脚本,将隐藏对象设置为选项卡的值(tested 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)
想法?应该读一下这个有一个页面生命周期
,如果要在代码隐藏中添加选项卡,请在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>
$(函数(){
$(“#数据选项卡”).tabs({
beforeActivate:功能(事件、用户界面){
$('#').val(ui.newPanel.attr('id');
}
});
});
以及:
当dataTabs\u ActiveTabChanged激发时,selectedTab的值是所选选项卡的名称。我之前错过了这一点,这让我感到很遗憾。显示您的代码已更新,很抱歉最初忽略了这一点。好吧,这修复了一件事,现在我实际上可以在dataTabs\u ActiveTab中更改选项卡计数以及每个选项卡的几乎所有其他细节,但仍然无法获取活动选项卡的索引或ID(活动始终显示0)。我肯定我在做一些愚蠢的事情,但我会继续做更重要的工作(这很好),然后再回来
<asp:HiddenField runat="server" ID="selectedTab" />