提交完成后关闭当前 Tab,刷新「父级」Tab。
增加如下方法在工具类中。
function reloadTabGrid(title){
if ($("#frm_center" ).tabs('exists', title)) {
$( '#frm_center').tabs('select' , title);
window.top.reload_Abnormal_Monitor.call();
}
}
在需要刷新的「父级」Tab 页面中添加。
window.top["reload_Abnormal_Monitor"]=function(){
$('#tt').datagrid( "load");
};
$.ajax({
url: '${ctx}/xxxx/xxxx.do',
type: 'post',
data: param,
complete: function () {
parent.closeTabPage('父级 Tab');
},
success: function (data) {
if (data.success) {
$.messager.alert('操作提示', data.opMsg, 'info');
parent.reloadTabGrid( "当前要关闭的 Tab" );
} else {
$.messager.alert('操作提示', data.opMsg, 'warning');
}
}
})
实现编辑某字段,其他可编辑字段联动计算。
EasyUI 也有 onClickCell
的方法,但那个比较适合单个 Cell 进行编辑,不适合这种联动计算变化数值的。
var lastIndex;
function setEditing(rowIndex){
var editors = $('#tt').datagrid('getEditors', rowIndex);
var priceEditor = editors[0];
var amountEditor = editors[1];
var costEditor = editors[2];
priceEditor.target.bind('change', function(){
calculate();
});
amountEditor.target.bind('change', function(){
calculate();
});
function calculate(){
var cost = priceEditor.target.val() * amountEditor.target.val();
$(costEditor.target).numberbox('setValue',cost);
}
}
$('#tt').datagrid({
onClickRow:function(rowIndex){
if (lastIndex != rowIndex){
$(this).datagrid('endEdit', lastIndex);
$(this).datagrid('beginEdit', rowIndex);
setEditing(rowIndex);
}
lastIndex = rowIndex;
}
});
这里在行与行之间切换编辑的时候,会自动关闭其他行的编辑状态,也就是 endEdit
的操作。
但是当且仅有一行时,无法关闭,考虑可以通过回车来关闭编辑状态。
$(document).keyup(function (e){
const key = e.which;
if(key === 13){
$('#gg').datagrid('endEdit', lastIndex);
$("#gg").datagrid("acceptChanges");
lastIndex = undefined;
}
});