EXT JS - 单击传输记录以存储弹出网格面板

Posted

技术标签:

【中文标题】EXT JS - 单击传输记录以存储弹出网格面板【英文标题】:EXT JS - on click transfer record to store of popup grid panel 【发布时间】:2014-05-04 12:13:01 【问题描述】:

这是我的带有标签的弹出窗口。 我需要在商店的选项卡 2 中将记录中的值提供给网格面板,以通过 category_id 从服务器端获取属性。在官方文档中搜索答案并没有找到。 可以帮帮我吗?

Ext.define('desk.view.CategoryPopup', 
    extend: 'Ext.window.Window',
    alias: 'widget.categorypopup',

    title: 'Change Category',
    layout: 'fit',
    autoShow: true,
    bdoyPadding: 10,

    initComponent: function()
        this.items = [
            xtype: 'tabpanel',
            items: [
                
                    xtype: 'form',
                    title: 'Add / Edit / Delete Category',
                    items: [
                        
                            xtype: 'textfield',
                            name: 'name',
                            fieldLabel: 'Parent Category'
                        ,
                        
                            xtype: 'textfield',
                            name: 'new',
                            fieldLabel: 'New Category'
                        ,
                        
                            xtype: 'textfield',
                            name: 'id',
                            fieldLabel: 'Category ID',
                            hidden: true
                        ,
                        
                            xtype: 'textfield',
                            name: 'parent',
                            fieldLabel: 'Parent ID',
                            hidden: true
                        
                    ],
                    bodyPadding: 10
                ,
                
                    xtype: 'gridpanel',
                    alias: 'widget.categoryattr',
                    title: 'Attributes',
                    height: 350,
                    buttons: ['text': 'Add attribute', 'action' : 'add-attribute'],
                    columns: [
                        
                            name: 'Name',
                            dataIndex: 'name'
                        
                    ],
                    width: 300,
                    store: Ext.widget('categoryattributes')
                
            ]
        ];

        this.buttons = [
            
                text: 'Update',
                action: 'add'
            ,
            
                text: 'Delete',
                action: 'delete'
            
        ];

        this.callParent(arguments);
    
)

This is function in controller

editCategories: function(grid, record)
        var view = Ext.widget('categorypopup');
        view.down('form').loadRecord(record);
    

【问题讨论】:

所以你想在按钮按下时将表单的记录添加到网格的存储中? 没有。我有一个带有类别的网格,我想在弹出窗口中通过 category_id 从数据库中获取属性 你能不能说的更具体一点:你的意思是类别的属性,你需要从数据库中填充一个商店吗...? 是的,我想用属性填充商店,例如我有 category_id = 5,当我在网格中单击它时会打开弹出窗口。在此弹出窗口中将是另一个网格面板,其中 category_id = 5 的属性。所以我需要提供 category_id 值来存储以进行 ajax 查询。 【参考方案1】:

你需要这样的东西:

editCategories: function(grid, record)
    var view = Ext.widget('categorypopup');
    view.down('form').loadRecord(record);
    Ext.Ajax.request(
        url: '/api/category/'+ record.getId() +'/attributes', //example url insert your webservice
        success: function(response)
            var attributes = Ext.decode(response.responseText);
            view.down('grid').getStore().loadData(attributes);
        
    );

您需要一个带有网格模型的商店。

【讨论】:

谢谢,我试试

以上是关于EXT JS - 单击传输记录以存储弹出网格面板的主要内容,如果未能解决你的问题,请参考以下文章

带有表单 cals servlet 的 Ext.js 4 窗口返回 JSON 但无法填充网格面板

Ext Js 分页不适用于 ExtDirect 网格面板

在 ext js 中的按钮单击事件上从网格和数据库中删除记录

Ext JS 模拟单击​​网格的下一个单元格

Ext js动态更新分页工具栏的总数

在 EXT 表单面板中填充 EXT JS 存储