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

问题描述 投票:0回答:1
  • 我有3个编辑过的单元格和3个重置按钮,其中2个重置按钮用于重置2个单独的单元格,1个用于重置整行。

  • 为了重置整行单元格,我使用了 grid.store.getAt(rowIndex).reject().

  • 我不知道我用什么来重置特定的单元格。

extjs extjs3 extjs-grid
1个回答
0
投票

我找到了解决方案。

  • 我使用了行的复位按钮,其中1个复位按钮是针对Cell_2的,另一个复位按钮是针对Cell_3的,第3个复位按钮是针对整个记录的全局复位。
  • 我做 grid.store.getAt(rowIndex).set("Cell_2",""); 为Cell_2和Cell_3复位按钮编写代码。
  • "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);
    }
    ```
© www.soinside.com 2019 - 2024. All rights reserved.