果汁UI标签在ASP.如何在代码隐藏中获得活动选项卡ID
本文关键字:活动 选项 ID 代码 标签 UI ASP 果汁 隐藏 | 更新日期: 2023-09-27 18:11:05
我在ASP中使用Juice UI选项卡功能。. NET,在代码后面动态地构建选项卡,并发现当OnActiveTabChanged被调用时,我无法获得活动选项卡的索引/ID。下面是我的ASPX页面:
juice:Tabs ID="dataTabs" runat="server" AutoPostBack="true" OnActiveTabChanged="dataTabs_ActiveTabChanged" /
当dataTabs_ActiveTabChanged火灾时,我找不到一个属性,实际上有被选中的标签的索引/ID。dataTabs。活动和数据表。选择的总是0
当选择给定选项卡时,我需要在服务器端采取一些操作,但是要这样做,需要能够告诉实际单击了哪个选项卡。我在客户端使用了各种jQuery脚本,将隐藏对象设置为选项卡的值(经过测试的激活和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 event
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的值是被选中的选项卡的名称。