docs: function (options) {
      var self = this;
      this.rowId = options['id'] || Row.getRandomRowId()
      this.status = Row.STATUS.NEW
      //this.selected = ko.observable(false);
      //this.selected.subscribe(function(value){
      //    if (value === true){
      //        self.parent.addRowSelect(self);
      //    }else{
      //        self.parent.setRowUnSelect(self);
      //    }
      //
      //})
      this.parent = options['parent']
      this.initValue = null
      this.data = {}
      this.metaChange = {}//ko.observable(1)
      this.valueChange = {};
      this.currentRowChange = ko.observable(1);
      this.selected = ko.pureComputed({
          read: function () {
              var index = this.parent.getRowIndex(this);
              var selectindices = this.parent.getSelectedIndices();
              return selectindices.indexOf(index) != -1;
          },
          owner: this
  
      })
      this.focused = ko.pureComputed({
          read: function () {
              var index = this.parent.getRowIndex(this);
              var focusIndex = this.parent.getFocusIndex()
              return focusIndex == index;
          },
          owner: this
  
      })
      this.init()
  }