【问题标题】:Passing parameter to window panel from grid panel in EXTJS4从EXTJS4中的网格面板将参数传递给窗口面板
【发布时间】:2013-01-01 22:15:15
【问题描述】:
{
    icon: 'images/delete.png', 
    tooltip: 'Edit',

    handler: function(grid, rowIndex, colIndex) {
            var edit = Ext.create('AM.view.user.Uploadfile').show();
            //here I want to pass parameters to get in window panel     
    }
}

我编写的代码,希望像在窗口面板上单击图标的行ID一样传递参数。

【问题讨论】:

  • 为什么你的处理程序有那个参数?你能详细说明那个按钮吗?
  • 其实它在网格布局下,我使用一个按钮作为操作列。我想在点击它时将'id'传递到窗口面板。

标签: extjs extjs4


【解决方案1】:

如果您查看 API,您会发现 handler 有参数

  • view : 拥有的 TableView。
  • rowIndex : 点击的行索引。
  • colIndex : 点击的列索引。
  • item:被点击的item(如果没有配置多个item,则为这个Column)。
  • e : 点击事件。
  • record :被点击行的底层记录

最后一个对您来说很有趣。所以你可以这样做

handler: function(grid, rowIndex, colIndex, item, e , record) {
    var win = Ext.create('Ext.window.Window', { 
          autoShow: true, 
          html: record.data.firstname + ' ' + record.data.lastname 
    });
}

这是一个有效的JSFiddle

【讨论】:

    【解决方案2】:

    它是一个动作列上的按钮。要将 Id 传递给窗口,您可以通过从记录参数中获取行数据来检索它。

    columns: [
        { text: 'Id', dataIndex: 'Id', width: 50 },
        {
            xtype: 'actioncolumn',
            width: 100,
            text: 'Delete',
            align: 'center',
            items: [{
                icon: '../images/delete.png',
                tooltip: 'Delete',
                handler: function (grid, rowIndex, colIndex, item, e, record) {
                    myWin.id = record.data.Id; //where myWin is a reference to the window object and id is just a config.
                }
            }]
        }
    ]
    

    【讨论】:

    • 上面这行 win = Ext.getCmp('somewindow');意思是这里。
    • 仅供参考:rowIdenx 不一定是存储中记录的索引。至少我从未听说过这样的约定。即使在某些情况下可能是这样,我也不会依赖它,直到他们将其重命名为 recordIndex ;)
    • 谢谢你。我有这段代码正在开发中:o,我现在要用你的例子来修复它:)
    • 呵呵,总是很开心;)
    猜你喜欢
    • 1970-01-01
    • 2012-07-30
    • 1970-01-01
    • 2012-02-24
    • 2023-03-14
    • 2017-11-09
    • 2011-08-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多