我目前使用隐藏的输入字段,通过javascript分配刚刚选中的选项卡的值,如下所示:
function onTabSelecting(sender, args) {
var tab = args.get_tab(); //get selected tab
document.getElementById("MainContent_hdnPreviousTab").value = tab.get_text(); //assign value to hidden field
if (tab.get_pageViewID()) { //ignore
tab.set_postBack(false);
}
}
然后在页面返回时,在客户端(ajax)PageLoad()事件中使用此赋值;
<script type="text/javascript" language="javascript">
var runOnce = false;
function pageLoad() {
if (!runOnce) {
var lastTab = document.getElementById("<%= hdnPreviousTab.ClientID %>");
if (lastTab.value) {
if (tabStrip) {
var tab = tabStrip.findTabByText(lastTab.value);
if (tab) {
tab.click();
}
}
}
runOnce = true;
}
}
</script>
目前在IE中这个工作正常(我知道对吗?),之前在javascript中设置的值仍然存在,我能够找到用户离开页面的选项卡。但是在FF,Chrome等我没有这样的运气。无论是否使用viewstate,隐藏字段都返回到空状态(value =“”)。
非常好奇是否有人有一种适合这种情况的替代方法。如果不清楚,请告诉我。
非常感谢。
答案 0 :(得分:1)
您可以使用localstorage。
localStorage.setItem('tab', value);