docs: function updateValueAt(rowIndex, field, value, force) {
      if (rowIndex > -1 && rowIndex < this.dataSourceObj.rows.length) {
          var oThis = this,
              oldValue = $(this.dataSourceObj.rows[rowIndex].value).attr(field),
              treeRowIndex = rowIndex;
          if (typeof value == 'undefined') value = '';
          if (oldValue != value || force) {
              if (typeof this.options.onBeforeValueChange == 'function') {
                  var obj = {};
                  obj.gridObj = this;
                  //因为树表更新时候可能改变rowIndex的顺序
                  obj.rowIndex = treeRowIndex;
                  obj.field = field;
                  obj.oldValue = oldValue;
                  obj.newValue = value;
                  var flag = this.options.onBeforeValueChange(obj);
                  if (!flag) return;
              }
              $(this.dataSourceObj.rows[rowIndex].value).attr(field, value);
              // $(this.dataSourceObj.options.values[this.dataSourceObj.rows[rowIndex].valueIndex]).attr(field, value); //grouptest依次执行除删除后不存在分组表头按钮最后修改数据会错误
              if (this.showType == 'grid') {
                  var obj = {};
                  obj.field = field;
                  obj.begin = rowIndex;
                  obj.length = 1;
                  this.renderTypeFun(obj);
                  // this.editColIndex = undefined;
                  // 如果编辑行为修改行则同时需要修改编辑行的显示
                  treeRowIndex = this.updateValueAtTree(rowIndex, field, value, force);
                  this.updateValueAtEdit(rowIndex, field, value, force);
                  this.repairSumRow();
                  this.repairGroupSumRow(this.dataSourceObj.rows[rowIndex]);
              }
              if (typeof this.options.onValueChange == 'function') {
                  var obj = {};
                  obj.gridObj = this;
                  //因为树表更新时候可能改变rowIndex的顺序
                  obj.rowIndex = treeRowIndex;
                  obj.field = field;
                  obj.oldValue = oldValue;
                  obj.newValue = value;
                  this.options.onValueChange(obj);
              }
              this.resetLeftHeight();
          }
      }
  }