ExtJS将值发送到窗口

时间:2014-05-27 12:12:05

标签: javascript extjs

我是ExtJS的新手,我尝试用一​​个按钮发送值到一个新窗口,我做了一些例子,他们没有工作,在这个例子中我认为,我差不多完成了,但这也没有用,我的错误或错误是什么?

var win = function (msg) { 
        Ext.create('Ext.Window', {
        title: msg,
        ...// here my window
    }); this.show;
};

    var btnAction = Ext.create('Ext.Button', {
        text: 'Add Something',
        listeners: {
            click: function() {
                var rec = grid4.getSelectionModel().getSelection()[0];
                if (rec) {
                    win(rec.get('price'));
                } else {
                    alert('Please select a company from the grid');
                };}}
    });

2 个答案:

答案 0 :(得分:1)

我不确定在将price发送到窗口之后您尝试做什么。{1}}但您可以使用up()down()方法访问该窗口中的字段。

例如

var btnAction = Ext.create('Ext.Button', {
        text: 'Add Something',
        listeners: {
            click: function() {
                var rec = grid4.getSelectionModel().getSelection()[0];
                if (rec) {
                    win.down('textfield[name=priceField]').setValue(rec.get('price'));
                } else {
                    alert('Please select a company from the grid');
                };}}
    });

此外,您是否以这种方式创建窗口?

var win = function (msg) { 
        Ext.create('Ext.Window', {
        title: msg,
        ...// here my window
    }); this.show;
};

我通常这样做......

var win = Ext.create('Ext.Window',{
    title:msg,
    ....//
}).show();

我之前提到的访问windows字段的方法可能需要像这样创建它。

答案 1 :(得分:1)

this.show是一个功能。函数执行方式如下:this.show();

小心,因为现在你可以在同一个按钮上点击10次,每次都打开一个新窗口......不知道那是不是你想要的......

这里是fiddle

var win = function (msg) {
    var win = Ext.create('Ext.Window', {
        title: msg
        // here my window
    });
    win.show();
    return win;
};

var btnAction = Ext.create('Ext.Button', {
    text: 'Add Something',
    listeners: {
        click: function () {
            var rec = grid4.getSelectionModel().getSelection()[0];
            if (rec) {
                win(rec.get('price'));
            } else {
                alert('Please select a company from the grid');
            }
        }
    }
});