Използвам IgniteUI, за да поставя решетка на сайт. Мрежата е обвързана с помощта на KnockoutJS. Използвал съм тази настройка за много мрежи в моето приложение, но се натъкнах на странен проблем.
Трябва да имам мрежа, която има заглавка на няколко колони и друга колона след това. Използвал съм заглавки на няколко колони и те работят добре. В този случай обаче мрежата ще постави информацията от колоната, която трябва да е след групата, в първата колона на групата, както се вижда в тази цигулка: http://jsfiddle.net/rc5a4vbs/3/. Колоната ColumnY трябва да има куп Y в нея и на двата реда, както се вижда в Javascript.
function ViewModel() {
var self = this;
self.value = ko.observable(false);
self.data = ko.observableArray([
{ "ColumnA": ko.observable(1), "ColumnD": ko.observable(21), "ColumnE": ko.observable("dkifhugb"),
"ColumnF": ko.observable(true), "ColumnG": ko.observable("false"),
"Procedure": ko.observable("Final Column"),
"TestConditionGroup": {
"ColumnY": ko.observable("YYYYYYYYYYYY"), "ColumnZ": ko.observable("ZZZZZZZZZ")
}
},
{ "ColumnA": ko.observable(2), "ColumnD": ko.observable(14), "ColumnE": ko.observable("5347347"),
"ColumnF": ko.observable(false), "ColumnG": ko.observable("string"),
"Procedure": ko.observable("Final Column"),
"TestConditionGroup": {
"ColumnY": ko.observable("yyyyyyyyyyyy"), "ColumnZ": ko.observable("zzzzzzzzzzz")
}
}
]);
self.getColumns = function() {
//debugger;
var columns = [
{ key: 'ColumnA', headerText: '', width: '0px', hidden: true },
{ key: 'ColumnD', headerText: 'Sequence', width: '100px' },
{ key: 'ColumnE', headerText: 'Iteration', width: '100px' },
{ key: 'ColumnF', headerText: 'Risk', width: '100px' },
{ key: 'ColumnG', headerText: 'Sub-Chapter Title', width: '200px' }
];
var columns2 = [
{ key: 'TestConditionGroup', headerText: 'ColumnY', width: '100px',
formatter: function(val){
return val[this.headerText];
}
},
{ key: 'TestConditionGroup', headerText: 'ColumnZ', width: '100px',
formatter: function(val){
return val[this.headerText];
}
}
];
columns.push({ key: 'TestConditionGroup', headerText: 'Test Conditions', group: columns2 });
columns.push({ key: 'Procedure', headerText: 'Procedure', width: '200px'});
return columns;
}
}
Мрежата работеше правилно, докато не направих данните, които са в групираните колони, в обект в обекта на реда. Ето как сървърът ще ми изпрати информацията. Когато всички колони бяха на най-високо ниво, работеше добре.
Как мога да накарам данните да се показват правилно с тази настройка за предоставените данни? Всяка помощ ще бъде високо оценена.