我正在使用带有updatepanels和Jquery UI选项卡的ASP.NET页面。但是,我遇到了问题。当我点击一个按钮时,它应该设置一个隐藏字段的值,当页面回发时,它将选择新的标签。
因此,在文档onload中,将tab设置为隐藏字段的初始化值:
$(function()
{
var loadTab = $("#<%= hidTabSelected.ClientID %>").val();
$('#dvJqTabs').tabs(
{ selected: loadTab ,
select: saveTab
}
)
});
现在,当我想要更改选项卡时,在ASP.NET页面按钮中单击处理程序我进行一些处理,最后设置hidTabSelected = 1(之前为0)。当页面发布时,因为我在UpdatePanels中,我将无法获得doc ready事件。因此,我拦截了pageLoad()并尝试再次设置标签:
function pageLoad()
{
alert('pageLoad()');
var loadTab = $("#<%= hidTabSelected.ClientID %>").val();
$('#dvJqTabs').tabs( { selected: loadTab } );
}
标签未被选中?如果我进入firebug的控制台并检查$(“#hidTabSelected”)。val()我得到1.那么为什么不显示第二个标签?
答案 0 :(得分:0)
请记住,在回调期间,在初始加载和PostBack加载时都会调用pageLoad()。我认为你的问题是该元素已经是一个标签,所以你只需要在回调后调用一个方法就像这样:
function pageLoad()
{
var loadTab = $("#<%= hidTabSelected.ClientID %>").val();
$('#dvJqTabs').tabs( "select", loadTab } );
}
答案 1 :(得分:0)
如果您将字符串传递给select
function,它会尝试将其与标签的锚点you can see the code for that here的哈希值相匹配。来自文档:
选择一个标签,就像点击它一样。第二个参数是要选择的选项卡的从零开始的索引或与选项卡关联的面板的id选择器(选项卡的href片段标识符,例如hash,指向面板的id)。
相反,您需要按索引选择,因此需要不为字符串。对于那个用parseInt()
,像这样:
function pageLoad()
{
var loadTab = parseInt($("#<%= hidTabSelected.ClientID %>").val(), 10);
$('#dvJqTabs').tabs( { selected: loadTab } );
}