Я вижу странное поведение при доступе к свойствам из объекта JS через оператор [].
У меня есть 3 столбца в таблице 'attr1', 'attr2', 'attr3' .Мой JS-объект имеет свойство Attributes, которое представляет собой хеш-таблицу, которая выглядит как {attr1: 'val', attr2: 'val', attr3: 'val'}
код работает нормально
function onRowDataBound(e) {
var attributes = e.dataItem.Attributes;
var keys = {0: 'attr1', 1: 'attr2', 2: 'attr3'};
for (var key in keys) {
var keyVal = keys[key];
var attribute = attributes[keyVal];
if (attribute != undefined) {
e.row.cells[key].innerText = attribute;
}
}
}
Однако, следующий код, где я динамически строю объект keys; атрибут всегда неопределен.
function getKeys() {
var keys = {};
$('#Equipment thead th').each(function() {
keys[this.cellIndex] = this.innerText;
});
return keys;
}
function onRowDataBound(e) {
var attributes = e.dataItem.Attributes;
var keys = getKeys();
for (var key in keys) {
var keyVal = keys[key];
var attribute = attributes[keyVal];
if (attribute != undefined) {
e.row.cells[key].innerText = attribute;
}
}
}