У меня есть раллигрид с тремя предметами в нем. В сетке автоматически отображаются ссылки для показа 25/50/100/etc на странице. Когда я нажимаю на 50, скажу, я просто получаю постоянный счетчик, говорящий «Загрузка ...» и в консоли JS, я получаю нечеткую ошибку «Не могу вызвать метод» indexOf «...»Rally SDK 2.0 RallyGrid дает ошибку IndexOf при нажатии на страницы
Я принимаю это означает, что у моего хранилища данных что-то не хватает?
Вот сетка материал:
var resultsModel = Ext.define('ResultsModel', {
extend: 'Ext.data.Model',
fields: [
{name: 'FID', type: 'string'},
{name: 'TestName', type: 'string'},
{name: 'TestDuration', type: 'string'},
{name: 'Verdict', type: 'string'},
]
});
this.resultsStore = Ext.create ('Ext.data.Store', { модель: 'ResultsModel', PAGESIZE: 25 });
this.down('#testResults').add({
xtype: 'rallygrid',
store: this.resultsStore,
width: 800,
viewConfig: {
stripeRows: true,
emptyText: "No test cases run"
},
columnCfgs: [
{
text: 'TestCase', dataIndex: 'FID', width: 65
},
{
text: 'Test Name', dataIndex: 'TestName', flex: 1
},
{
text: 'Run Time (s)', dataIndex: 'TestDuration', width: 75
},
{
text: 'Verdict', dataIndex: 'Verdict', width: 65,
renderer: function(value){
if((value == "Fail") || (value == "Error")){
return Ext.String.format("<div style='background-color:#F00;color:#FFF;font-weight:bold;text-align:center'>{0}</div>", value);
}
else{
return Ext.String.format("<div style='background-color:#2EFE2E;color:#000;font-weight:bold;text-align:center'>{0}</div>", value);
}
}
}
]
});
и вот эти данные, засунули в хранилище:
Ext.Array.each(data, function(record) {
records.push({
FID: record.get('TestCase')['FormattedID'], //record.data.TestCase might work too.
TestName: record.get('TestCase')['Name'],
TestDuration: record.get('Duration'),
Verdict: record.get('Verdict')
});
});
this.resultsStore.loadData(records, false);
Данные в массиве, Ext итерации над просто принести тестовые прогоны.
Вот консольный вывод:
Uncaught TypeError: Cannot call method 'indexOf' of undefined sdk-debug.js:5304
Ext.apply.urlAppend sdk-debug.js:5304
Ext.define.buildUrl sdk-debug.js:26016
Ext.define.buildRequest sdk-debug.js:25859
Ext.define.doRequest sdk-debug.js:26059
Ext.define.read sdk-debug.js:25828
Ext.define.load sdk-debug.js:44668
Base.callParent sdk-debug.js:2894
Ext.define.load sdk-debug.js:45283
Ext.define.read sdk-debug.js:44420
Ext.define.loadPage sdk-debug.js:45562
Ext.define.changePageSize sdk-debug.js:96872
(anonymous function) sdk-debug.js:1540
(anonymous function)
wrap
Я думаю, что ответ, похоже, заключается в том, что у меня был сценарий: 1. создайте пустое хранилище, создайте пустую сетку, пойдите, получите данные, а затем используйте store.loadData для обновления хранилища и сетки с данными , Но loadData заставляет игнорировать страницу, и ссылка на номера страниц, похоже, возвращается в пустую память. Таким образом, ответ, похоже, заключается в том, чтобы 1. получить данные, создать хранилище с данными, а затем создать сетку. Кажется, это работает. – curmudgeon