Панель EditorGrid + кнопка - перезагрузка проблемы с данными - PullRequest
0 голосов
/ 19 апреля 2011

Я разрабатываю приложение в ExtJ с использованием Rails, в котором есть панель вкладок. Главная вкладка содержит список кнопок слева. Нажатие на каждую кнопку откроет новую вкладку и отобразит сетку или форму. Когда я добавляю новую запись из формы, она сразу отображается в сетке, но если я закрываю панель вкладок и снова нажимаю на кнопку, сетка не отображается.

Как снова загрузить сетку вместе с данными?

P.S .: когда я вручную обновляю браузер, он снова отображается !!

Заранее спасибо !!

MyCode:

//** MyUnit.js in Units controller**//

MyUnit = Ext.extend(MyUnitUi, {
         initComponent: function() {
        MyUnit.superclass.initComponent.call(this);

             //Insert records...

                var sbtn=Ext.getCmp('btnSave');

                sbtn.on('click',function(){
                var grid = Ext.getCmp('maingrid');
                var unitname =  Ext.getCmp('unitname').getValue();
                var description =  Ext.getCmp('description').getValue();

                var frm=Ext.getCmp('myform');

                Ext.Ajax.request({
                url: '/units',
                method: 'POST',

                params: {'data[unitname]':unitname,'data[description]':description}

        });
                var grid=Ext.getCmp('maingrid');
                grid.store.reload();
                grid.show();
                frm.hide();
             });

});

//** MyViewport.js in Test1 Controller **//

    var unit_bt =Ext.getCmp('btnUnit');
       unit_bt.on('click', function(){
       var unit_el =Ext.getCmp('tabcon');
       var tab = unit_el.getItem('tab_unit');
       if(tab)
       {
           tab.show();
       }else{
            unit_el.add({
                title    : 'Unit of Measurement',
                html     : 'I am new unit',
                activeTab: 0,
                closable : true ,
                id: 'tab_unit',
                autoLoad:{url:'/units',scripts:true}
                //store.load({params:{start:0, limit:25}})

            }).show();
            }
       });

//** Units/index.html **//
<!DOCTYPE html>

<!-- Auto Generated with Ext Designer -->
<!-- Modifications to this file will be overwritten. -->
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>unit.xds</title>
    <link rel="stylesheet" type="text/css" href="http://extjs.cachefly.net/ext-3.3.1/resources/css/ext-all.css"/>
    <script type="text/javascript" src="http://extjs.cachefly.net/ext-3.3.1/adapter/ext/ext-base.js"></script>
    <script type="text/javascript" src="http://extjs.cachefly.net/ext-3.3.1/ext-all-debug.js"></script>
    <script type="text/javascript" src="MyUnit.ui.js"></script>
    <script type="text/javascript" src="MyUnit.js"></script>
    <script type="text/javascript" src="MyUnitStore.js"></script>
    <script type="text/javascript" src="xds_index.js"></script>
</head>
<body></body>
</html>

1 Ответ

0 голосов
/ 19 апреля 2011

@ All: Спасибо за ваши усилия. Ну, мой друг нашел решение.

Проблема была решена простым добавлением следующей строки кода в unit.js снова:

var grid=Ext.getCmp('maingrid');
grid.store.reload();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...