The task's get_customFieldClientName() and set_customFieldClientName(newValue) methods always work with the last custom field in the CustomFields collection.
There are two workarounds until an official solution is available:
- instead of the function getter, use task._data.customFieldClientName . The setter cannot be worked around that easily. This can work for you if you only show data or do not need to edit custom fields
- OR, add the following function override at the end of the </form> - a sample is attached below
<script>
Telerik.Web.UI.RadGantt.prototype.initializeCustomFields = function () {
var _createCustomFieldGetterAndSetter = function (fieldName) {
var taskType = Telerik.Web.UI.GanttTask;
taskType.prototype["get_" + fieldName] = function () {
return this._data[fieldName];
};
taskType.prototype["set_" + fieldName] = function (value) {
var updateInfo = {};
updateInfo[fieldName] = value;
this._data[fieldName] = value;
this._update(updateInfo);
};
}
var customFields = this.get_customTaskFields();
for (var i = 0, length = customFields.length; i < length; i++) {
_createCustomFieldGetterAndSetter(customFields[i].clientPropertyName);
}
}
</script>