API как такового нет. Недавно у меня также было подобное требование, и вот как я его реализовал:
1) Изначально столбец B доступен для редактирования, потому что я сделал это в разделе «Поля» сетки. 2) Используйте onRowClick для захвата рендеринга строк. Что-то вроде этого должно делать
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);
}
});
Затем следующий метод запрещает встроенное редактирование требуемого столбца. Мы передаем индекс строки и индекс столбца этой следующей функции:
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, '&').replace(/</g, '<') : 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]);
}
}
Надеюсь, это поможет. Возможно, вы можете добавить jsfiddle, и мы можем попытаться это исправить.
person
Piyush-Ask Any Difference
schedule
03.10.2012