In the attached project, if you try to reorder task 10 above task 6, both tasks will have the same OrderID.
The same is not observed if you reorder Task 4 to be above Task 1.
Workaround - placing the following script after the ScriptManager: <script type="text/javascript"> Telerik.Web.UI.RadGantt.prototype.postback = function (args) { var postbackFunction = this.get_postBackReference().replace("arguments", Sys.Serialization.JavaScriptSerializer.serialize(args).replace(/\\/g, "\\\\").replace(/'/g, "\\'")); eval(postbackFunction); } </script>
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>