重置一个已编辑的网格单元格

Reset one edited cell of grid

我找到了解决方案。

  • 我使用了按行重置按钮,在 中,第一个重置按钮用于 Cell_2,另一个重置按钮用于 Cell_3,第三个重置按钮就像整个记录的全局重置.
  • 我为 Cell_2 和 Cell_3 重置按钮编写了 grid.store.getAt(rowIndex).set("Cell_2",""); 代码。
  • " hasUnsavedChanges() " 调用以检查在离开该行或该菜单时是否有任何未保存的更改可用。
  • 如果未保存的更改可用,则显示弹出窗口且不可用,然后从存储修改列表中删除该记录。
hasUnsavedChanges: function() {
      var isCell_1modified = false;
      var isCell_2modified = false;
      var isCell_3modified = false;
      this.getParametersFormPanel().stopEditing();
      var rowIndex = this.getParametersFormPanel().getSelectionModel().lastActive;
      var storeDataRecoder = this.getParametersFormPanel().getStore().data.items[rowIndex];
      var modifiedRecord = this.getParametersFormPanel().getStore().getModifiedRecords()[0];
      if(storeDataRecoder && modifiedRecord){
        if(storeDataRecoder.data.recordID === modifiedRecord.data.recordID){
          if(modifiedRecord.modified.hasOwnProperty("Cell_1")){
            if (modifiedRecord.modified.Cell_1 == storeDataRecoder.data.Cell_1){
              isCell_1modified = false;
            }else{
              isCell_1modified = true;
            }
          }
          if(modifiedRecord.modified.hasOwnProperty("Cell_2")){
            if(modifiedRecord.modified.Cell_2 === storeDataRecoder.data.Cell_2){
              isCell_2modified = false;
            }else{
              isCell_2modified = true;
            }
          }
          if(modifiedRecord.modified.hasOwnProperty("Cell_3")){
            if(modifiedRecord.modified.Cell_3 === storeDataRecoder.data.Cell_3){
              isCell_3modified = false;
            }else{
              isCell_3modified = true;
            }
          }
        }
      }

      if((isCell_1modified || isCell_3modified || isCell_2modified) === false){
        if(this.getParametersFormPanel().getStore().getModifiedRecords()){
          this.getParametersFormPanel().getStore().getModifiedRecords().length = 0;
        }
      }
      return (isCell_1modified || isCell_3modified || isCell_2modified);
    }
    ```