2011-07-18 1 views
0

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

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

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

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

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

ответ

0

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

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

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

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, как следует, что будет производить несколько пунктов внутр [] на лету ...

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"}]} 
+0

Спасибо за ответ. Я имею в виду сохранить шаблон для каждой сетки в формате XML на сервере; который будет перенесен на клиентскую сторону через Ajax в событии PreRender Grid. Этот XML-файл будет содержать сведения о структурах столбцов и дополнительных деталях, если таковые имеются. Как вы сказали, в случае успеха Ajax в PreRender я проанализирую эти XML, чтобы создать структуру/модель моей сетки; который позже отправляет вызов Ajax в базу данных для загрузки данных в формате XML/JSON. Это звучит здорово? Или есть лучший способ? Благодаря! – abhilashca

+0

Ну, json/xml действительно выбирают вашу ядовитую ситуацию. У меня есть cgi, который показывает дерево «отчетов». Каждый отчет является определением в таблице базы данных, как если бы вы описывали сетку, если она есть, столбцы, источники данных, заголовки, тип диаграммы, если они есть, настройка оси и т. Д. Это все используется для формирования страницы, как описано выше, с использованием вышеприведенной техники. – hpavc

+0

Ну. Затем позвольте мне попробовать JSON/XML и событие PreRender. Спасибо за предложения :) Привет! – abhilashca

Смежные вопросы