Вы можете просто перезаписать
Telerik.Web.UI.GridTableView.dataBind функция путем замены
этот фрагмент из оригинального уменьшенного сценария telerik:
var J = r[v].get_uniqueName();
var n = this.getCellByColumnUniqueName(H, J);
if (!n) {
continue;
}var D = r[v]._data.DataField;
if (typeof (D) == "undefined") {
D = J;
} var h = this._dataSource[u][D];
if (h == null) {
h = "";
с чем-то, например, таким:
var J = r[v].get_uniqueName();
var n = this.getCellByColumnUniqueName(H, J);
if (!n) {
continue;
}var D = r[v]._data.DataField;
if (typeof (D) == "undefined") {
D = J;
}
//change here to eval the dataField
var h = AvoidEvalDueToPerformance(this._dataSource[u], D);
if (h == null) {
h = "";
Функция AvoidEvalDueToPerformance определяется следующим образом:
function AvoidEvalDueToPerformance(object, propertyString) {
var k = propertyString.split(".");
for (var i = 0; i < k.length; i++)
if (object[k[i]]) object = object[k[i]];
else return object;
return object;
}
Надеюсь, это кому-нибудь поможет, так как это был первый результат, на который я наткнулся при поиске ответа на вопрос "Как привязать RadGrid к стороне клиента сложного объекта"
Постскриптум чтобы переписать функцию, вы можете написать
Telerik.Web.UI.GridTableView.dataBind.prototype = function(){
//copy-paste the Telerik.Web.UI.GridTableView.dataBind.prototype contents
//from your favorite javascript debugger output
//(or grep output or w/e you prefer) here :)<br />
}