[英]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.