Лучший способ развернуть ExtJs Grid в крупномасштабном проекте - PullRequest
0 голосов
/ 18 июля 2011

Это было довольно давно, я оценивал ExtJs Grid. Пока все хорошо, и я люблю управление и API. У меня есть некоторые искренние сомнения относительно развертывания ExtJs Grid в производственной среде. Вот и они:

Как я могу развернуть ExtJs Grid в крупномасштабном проекте? Предположим, у меня есть огромный проект, который содержит более 100 гридов. В таком случае, как я могу справиться с этими сетками?

  1. Должен ли я поддерживать отдельный файл JavaScript для каждой сетки? Это означает, что если у меня есть 100 сеток, нужно ли мне поддерживать 100 файлов JS?
  2. Должен ли я поддерживать файл JS-оболочки, который может создавать все мои 100 гридов, в соответствии с аргументами, которые я передаю методу?

Какой из них лучше? Или есть ли лучшие методы доступны? Может, кто-нибудь расскажет о развертывании ExtJs Grid в крупномасштабном проекте?

Любая помощь будет оценена. Спасибо!

1 Ответ

0 голосов
/ 18 июля 2011

Можете ли вы объяснить свой проект?100 сеток или 100 моделей / хранилищ данных?

Я бы создал базу данных с определениями столбцов модель / источник / сетка и динамически создавал бы внешние сетки, сопоставляя данные с помощью json.Это довольно тривиально, когда вы делаете слушателя beforeRender, у которого есть запрос ajax, затем в подпрограмме успеха ajax вы создаете или заполняете определения модели / источника / сетки и ... done.

Youможно увидеть эту технику (не в сетке), например ...

var areaEast = Ext.create('Ext.Panel', {
    region: 'east',
    collapsible: true,
    split: true,
    width: 200,
    title: 'east',
    items: [ ],
    layout:'accordion',
    autoScroll: true,
    listeners : {
        beforeRender : function() {

            Ext.Ajax.request({
                url: './js/tabs.pl',
                disableCaching: false,
                success: function(response){
                    var text = Ext.decode(response.responseText);

                    Ext.each( text.rows, function(row, index) {
                        areaEast.add( row );
                    });
                },
            });

        },
    },
});

... и некоторые json, как то, что последует, создаст пару элементов ext [] на лету ...

Content-Type: application/json

{"rows":[{"html":"str_0.720264353647025","iconCls":"ico_home","title":"tab_1","xtype":"panel"},
 {"html":"str_0.967244391419577","iconCls":"ico_gear","title":"tab_2","xtype":"panel"},
 {"html":"str_0.713014552355148","iconCls":"ico_home","title":"tab_3","xtype":"panel"},
 {"html":"str_0.0254531761575763","iconCls":"ico_gear","title":"tab_4","xtype":"panel"}]}
...