extjs dataview проблема - PullRequest
       1

extjs dataview проблема

1 голос
/ 28 апреля 2011

Я создаю инструмент для создания отчетов.Я буду перетаскивать / изменять размеры панелей внутри контейнера панелей.Когда я нажимаю кнопку «Сохранить», я передаю размер и положение панелей и на основании этого создается отчет в формате xhtml.У меня есть вид данных на левой стороне.Каждый раз, когда генерируется отчет, мне нужно показать этот отчет на dataview.Без использования какой-либо базы данных, как это можно сделать?Любая помощь будет оценена.

1 Ответ

4 голосов
/ 29 апреля 2011

Сделайте одно, создайте магазин с полями "size", "report_data" и "position".

var store = new Ext.data.JsonStore({
    id : 'panel_store',
    fields : ['size', 'position', 'report_data']
});

Создание шаблона для каждого отчета (здесь можно добавить некоторые другие данные):

var template = new Ext.XTemplate(
    '<div class="reports_container"><tpl for=".">',
    '<div class="report">{report_data}</div>','</tpl></div>'
);

template.compile();

Создание просмотра данных с шаблоном и сохранение:

var dataView = new Ext.DataView({
    itemSelector : 'div.report',  // Required
    style : 'overflow:auto',
    multiSelect : true,
    store : store,
    tpl : template
});

Добавьте отображение данных на главной панели:

var mainPanel = new Ext.Panel({
    id : 'main_panel',
    items : dataView
});

Каждый раз, когда вы генерируете новый отчет, создайте новую Ext.Record:

var ReportRecord = Ext.data.Record.create([
    { name: 'size' },
    { name: 'position' },
    { name: 'record_type' }
]);

var newRec = new ReportRecord({
    size : '100',
    position : 'some position',
    report_data : 'some data'
});

store.add(newRec);

store.on('add', function() {
    dataView.refresh();
}, this);

Это то, что вы хотели?Однако этот код нигде не тестируется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...