DOJOX 데이터 그리드에서 선택적 셀에 대한 편집 사용 안 함 또는 활성화
-
12-12-2019 - |
문제
dojox 데이터 그리드에서 선택적 셀에 대한 편집을 비활성화하거나 활성화하는 방법 I.E
데이터 그리드에 두 개의 열 (a, b)이 있다고 상상해보십시오.A 열 A의 값을 기준으로 B의 열 값을 편집 할 수있게하고 싶습니다. 나는 Dojo 버전에 특정한 스택 오버 플로우에서 하나의 솔루션을 보았습니다.우리가 목표를 달성 할 수있는 API가 있는지 알고 싶습니다.
해결책
내 기본 방법은 를 무시하는 것입니다.
canEdit: function(inCell, inRowIndex)
DataGrid의 방법.그로부터 항목을 얻을 수 있습니다 :
this.getItem(inRowIndex)
은 편집 할 수 있거나 아닌 경우 작업을 수행하고 true / false를 반환합니다.
이렇게하면 열의 편집 가능한 플래그가 오버라이드되지 않으므로 필요할 경우 뭔가를 수행해야합니다.
다른 팁
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을 추가 할 수 있고 우리는 고정 시도 할 수 있습니다.
제휴하지 않습니다 StackOverflow