Pregunta

Cómo deshabilitar o habilitar Editar para celular selectivo en DOJOX DATOS GRID I.E

Imagine Tengo dos columnas (a, b) en una cuadrícula de datos.Quiero que el valor de la columna de B sea editable en función del valor de la columna A. He visto una solución en el desbordamiento de la pila que fue específico de una versión de Dojo.Me gustaría saber si hay API por el cual podemos lograr el objetivo anterior.

¿Fue útil?

Solución

Mi método preferido es anular el

canEdit: function(inCell, inRowIndex)

Método del DataGrid.A partir de eso, puede obtener el artículo:

this.getItem(inRowIndex)

Luego resuelve si debería ser editable o no, y devolver verdadero / falso.

Esto se anula la bandera editable en la columna, por lo que deberá hacer algo con eso si es necesario.

Otros consejos

No hay API como tal.También tuve un requisito similar recientemente y aquí es cómo lo implementé:

1) Inicialmente, la columna B es editable porque lo hice tan en la sección de campos de la cuadrícula 2) Utilice onRowClick para capturar la representación de las filas.Algo así debería hacerlo

dojo.connect(grid, "onRowClick", grid, function(evt){
  var idx = evt.rowIndex,
  item = this.getItem(idx);

  //  get a value out of the item
  msname = this.store.getValue(item, "msname");
  if(msname != null &U& (trim(msname) == trim(offsetName))) {
    dojox.grid.cells._Base.prototype.format(idx, item);
  }
});

El siguiente método no permite la edición en línea de la columna requerida.Estamos pasando índice de filas y índice de columnas a esta siguiente función:

dojox.grid.cells._Base.prototype.format = function(inRowIndex, inItem){
    var f, i=grid.edit.info, d=this.get ? this.get(inRowIndex, inItem) : (this.value || this.defaultValue);
    d = (d && d.replace && grid.escapeHTMLInData) ? d.replace(/&/g, '&amp;').replace(/</g, '&lt;') : d;

                //Check inRowIndex and inItem to determine whether to be editable for this row here.

    if(this.editable && (this.alwaysEditing || (i.rowIndex==inRowIndex && i.cell==this))){
    return this.formatEditing(d, inRowIndex);
    }else{
    return this._defaultFormat(d, [d, inRowIndex, this]);
    }
}

Espero que eso ayude.Probablemente pueda agregar un JSFiddle y podemos intentar arreglarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top