忽略了销毁问题,会导致加载dialog的时候加载到了上次没有销毁的dialog,可以按照下面方式写dialog:
这块代码是在dialog上动态加载不定数量的tab,并在不同的tab上生成不同的部分列合并表格(datagrid)
//全局变量:
var array = new Aray();
$("<div><div>").dialog({
id:'batch_publish_sure',
title:"发布确认",
width:600,
height:600,
closed:false,
modal:true,
content:"<div id=\"tt\"></div><div id=\"tobe_sure_data_batch\"></div>",
buttons:[{text:'确定',iconCls:'icon-ok',handler:yesPublish},{text:'取消',iconCls:'icon-cancel',handler:noPublish}],
onClose:function(){
$("#batch_publish_sure").dialog("destroy");
},
onOpen:function(){
$("#tt").tabs({
border:false,onSelect:function(title,index){
for(var i=0;i<array.length;i++){
if(array[i].name == title){
var id = array[i].id
$("#tobe_sure_data_batch").datagrid({
url: "/***",
queryParams:{
tplId:id
}
});
}
}
}
});
$("#tobe_sure_data_batch").datagrid({
fitColumns: true,
autoRowHeight: true,
rownumbers: false,
singleSelect: false,
columns:[[
{field:'modelName',title:'型号',width:100},
{field:'method',title:'方案',width:100},
{field:'price',title:'渠道报价',width:100},
{field:'warrantyPeriod',title:'质保期',width:100},
{field:'operatorType',title:'变更类型',align:'right',width:100}
]],
onLoadSuccess: function (data) {
/*合并单元格*/
var start = 0;
var end = 0;
if (data.total > 0) {
var temp = data.rows[0].modelName;
for (var i = 1; i < data.rows.length; i++) {
if (temp == data.rows[i].modelName) {
end++;
} else {
if (end > start) {
$(this).datagrid('mergeCells', {
index: start,
rowspan: end - start + 1,
field: 'modelName'
})
}
temp = data.rows[i].modelName;
start = i;
end = i;
}
}
/*这里是为了判断重复内容出现在最后的情况,如ABCC*/
if (end > start) {
$(this).datagrid('mergeCells', {
index: start,
rowspan: end - start + 1,
field: 'modelName'
})
}
}
}
});
//多个tab
if(mapList.length > 1){
for(var i=0;i<mapList.length;i++){
array.push({name:mapList[i]["name"],id:mapList[i]["id"]});
addTab(mapList[i]["name"],mapList[i]["id"]);
}
}
}
});
精简一下:
$("<div><div>").dialog({
id:'batch_publish_sure',
title:"发布确认",
width:600,
height:600,
closed:false,
modal:true,
content:"<div id=\"tt\"></div><div id=\"tobe_sure_data_batch\"></div>",
buttons:[{text:'确定',iconCls:'icon-ok',handler:yesPublish},{text:'取消',iconCls:'icon-cancel',handler:noPublish}],
onClose:function(){
$("#batch_publish_sure").dialog("destroy");
},
onOpen:function(){
$("#tt").tabs({
border:false,onSelect:function(title,index){
for(var i=0;i<array.length;i++){
if(array[i].name == title){
var id = array[i].id
$("#tobe_sure_data_batch").datagrid({
url: "/***",
queryParams:{
tplId:id
}
});
}
}
}
});
$("#tobe_sure_data_batch").datagrid({
fitColumns: true,
autoRowHeight: true,
rownumbers: false,
singleSelect: false,
columns:[[
{field:'modelName',title:'型号',width:100},
{field:'method',title:'方案',width:100},
{field:'price',title:'渠道报价',width:100},
{field:'warrantyPeriod',title:'质保期',width:100},
{field:'operatorType',title:'变更类型',align:'right',width:100}
]]
});
//多个tab
if(mapList.length > 1){
for(var i=0;i<mapList.length;i++){
array.push({name:mapList[i]["name"],id:mapList[i]["id"]});
addTab(mapList[i]["name"],mapList[i]["id"]);
}
}
}
});