easyui tab 关闭 打开
先说一下项目中遇到的问题,在index页面加了
function Read() {
$('#tabs').tabs({
onSelect: function (title) {
var currTab = $('#tabs').tabs('getTab', title);
var iframe = $(currTab.panel('options').content);
var src = iframe.attr('src');
if (title != null) {
if (title != "欢迎使用" && title != "添加商品") {
$('#tabs').tabs('update', { tab: currTab, options: { content: createFrame(src)} });
}
}
}
});
}
此方法用处为点击tab页,选中的tab页内容自动刷新(除欢迎使用和添加商品页面)。
但是商品管理页面有一个编辑商品,点击编辑商品不关闭编辑商品(添加商品)页,如果再从商品管理页中点击编辑商品,则编辑商品页面显示的为第一次打开编辑商品的内容,不合理的要求。
解决办法:
1、编辑商品方法:
function Edit(id, type) {
var tabTitle = "编辑商品";
var url = "/Admin/ProductGoods/AddProduct.aspx?ID=" + id;
var icon = "icon-addproduct";
var hasTab = window.parent.$('#tabs').tabs('exists', tabTitle);
if(hasTab==true){
$.ajax({
type: "Post",
async: false,
url: "../../qyjx/WebServices.aspx/SaveProductID",
contentType: "application/json; charset=utf-8",
dataType: "json",
data: "{ 'id': '" + id + "' }",
success: function (data) {
},
error: function (err) {
alert(err.responseText);
}
});
window.parent.$('#tabs').tabs('close', tabTitle);
}
window.parent.addTab(tabTitle, url, icon);
其中window.parent.$('#tabs').tabs('close',tabTitle);方法为关闭页面(iframe)。但是关闭页面后编辑商品页面刷新,相当于重新加载。
故先判断在iframe中打开的tabs中是否有编辑商品页面,如果有,则先关闭,并且把点击编辑商品的商品ID用Session保存,以便于再次点击编辑商品时,把ID赋给隐藏域,在$(function(){})方法中判断ID是否为大于0的值,如果是,则先执行关闭编辑商品页面方法,再执行window.parent.addTab(tabTitle,url,icon)方法。
如果不存在编辑商品页面,则直接跳转到编辑商品页面。
切记:如果tabs页打开为iframe框架,关闭时一定用window.parent.$('#tt').tabs('close','XXX');
Session清除时直接Session["XX"]=null,不能用Session.Abandon()方法,Session.Abandon()方法为把Session全部销毁。