【问题标题】:EditorGrid panel + button - reloading data problemEditorGrid 面板 + 按钮 - 重新加载数据问题
【发布时间】:2011-04-19 23:41:22
【问题描述】:

我正在使用 Rails 在 ExtJs 中开发一个应用程序,其中有一个选项卡面板。主选项卡包含左侧的按钮列表。单击每个按钮将打开一个新选项卡,并呈现一个网格或表单。当我从表单添加新记录时,它会立即显示在网格上,但如果我关闭选项卡面板并再次单击按钮,则不会显示网格。

如何再次加载网格和数据?

P.S:当我手动刷新浏览器时,它又显示了!!

提前致谢!!

我的代码:

//** 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>

【问题讨论】:

  • @rashmi.. 你能发布你的代码吗?
  • @Abdel : 已发布代码。
  • 您还可以在初始化网格的位置发布代码吗?我的猜测是您将网格渲染到选项卡中。然后,当您关闭选项卡时,您的网格将与您的选项卡一起删除,这就是为什么它在第二次尝试时消失的原因。尝试发布更多信息,以便我们提供帮助。
  • @Lionel:是的,你的猜测绝对正确!好吧,我已经发布了 index.html 页面。 Viewport.js 中的代码,即 url: /units 将呈现 units/index.html 页面。

标签: ruby-on-rails extjs


【解决方案1】:

@All:感谢您的努力。好吧,我的朋友找到了解决方案。

只需在units.js中再次添加以下代码行,问题就解决了:

var grid=Ext.getCmp('maingrid');
grid.store.reload();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 1970-01-01
    • 2021-11-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多