In SmartClient 6.5.1 there exists a bug whereby in some circumstances a horizontally scrolled editable listGrid with a number of fields, including some which are canEdit:false can fail to show an editor for certain fields.
This patch should resolve this issue:
This patch should resolve this issue:
Code:
//----------------------------------------------------------------------------
// Isomorphic SmartClient 6.5.1 patch
// Purpose: Fix for a case where editors could fail to show for some fields when
// incrementally rendering out ListGrid columns if editing was disabled on other fields
//
// Applies to SmartClient 6.5.1 build only
//----------------------------------------------------------------------------
if (window.isc && isc.version.startsWith("6.5.1/") ){
if (isc.ListGrid) {
isc.ListGrid.addProperties({
$32s: function (_1, _2) {
var _3 = this.$30a;
this.$30a = true;
if (!this.isDrawn() || !this.body) {
return;
}
var _4 = this.isEmpty() ||
!_3 &&
_1 >= this.data.getLength() &&
(this.showNewRecordRow || this.body.getTableElement(_1, _2) == null);
if (_4 ||
this.body.isDirty() ||
(this.frozenBody && this.frozenBody.isDirty())) {
var _5 = this.bodyLayout ? this.bodyLayout : this.body;
_5.redraw("Showing editor");
return;
}
if (this.editByCell) {
this.refreshCell(_1, _2);
} else {
var _6 = this.getDrawnFields();
for (var i = 0; i < _6.length; i++) {
var _8 = _6[i][this.fieldIdProperty],
_9 = this.$286.getItem(_8), _2 = _9.colNum, _10 = !!(_3 && _9.isDrawn()),
_11 = this.canEditCell(_1, _2);
if (_10 != _11) {
this.refreshCell(_1, _2);
} else if (this.selectOnEdit || this.lastOverRow) {
this.body.$29h(this.getCellRecord(_1, _2), _1, _2);
}
}
}
}
});
}
} else if (window.isc) {
isc.Log.logWarn("Patch for SmartClient 6.5.1 build included in this application. " +
"You are currently running SmartClient verion '"+ isc.version +
"'. This patch is not compatible with this build and will have no effect. " +
"It should be removed from your application source.");
}
// End of patch
// ------------