extjs:将变量传递给FormPanel

extjs: passing variable to FormPanel

本文关键字:FormPanel 变量 extjs      更新时间:2023-09-26

我有一个函数:

function saveToJ(feature) {
    var str = new OpenLayers.Format.GeoJSON(out_options).write(feature, true);
    str = str.replace(/,/g, ', ');
    strObj = Ext.decode(str);
    if(strObj.properties.name == null) {
        ...
    } else {
        if(!win) {
            win = new Ext.Window({
                title : "Edit",
                items : [editPanel],
                closeAction : 'hide'
            });
        }
        win.show();
        }
    }
}

和一个面板:

var editPanel = new Ext.form.FormPanel({
    width : 400,
    defaults : {
        width : 230
    },
    defaultType : 'textfield',
    items : [{
        fieldLabel : 'Name',
        name : 'name',
        allowBlank : false,
    }],
    buttons : [editSaveBtn, editDeleteBtn]
});

我想做的是使用strObj.properties.name作为面板上字段的value。但是CCD_ 3给出了CCD_。

CCD_ 5是在CCD_ 6函数之外声明的。

我做错了什么?

在尝试打开窗口之前,您确定strObj本身不是null吗?如果它已经在作用域中,您不应该将它传递给Ext.form才能使用它。我会使用调试器并确保它不是空的。

它很简单,只需使用:

editPanel.getForm().findField('name').setValue(strObj.properties.name);