提交完成后关闭当前 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;
    }
});

No notes link to this note