我一直在为此挠头,我想知道这是否可能。我想通过以下方式替换 GeoExt.form.FormPanel 的协议:
- 为了呈现表单面板,我在表单面板之外将变量“proto”定义为 null (var proto = null)。
- 然后“proto”进入formpanel(协议:proto)。
- 在按钮的处理函数中定义了一个新变量“proto”。我想在窗体面板中替换这个新变量。
由于 extjs、geoext、openlayers 是 javascript 库,我已经尝试过诸如“eval”之类的东西,以使处理程序中的变量“proto”可以在窗体面板中访问,但到目前为止还没有运气。这是一个简化的示例来说明这一点:
var proto = null;
var formPanel = new GeoExt.form.FormPanel({
protocol: proto, # <--- replace with [1]
items: [{
xtype: "combo",
id: "idcombo",
etc...
}, {
xtype: "textfield",
id: "idtext",
etc...
}],
button:[{
text: "search",
handler: function() {
formPanel.search();
var combo = Ext.getCmp('idcombo').getValue(); # <--- this works and gets the value chosen in "xtype: combo"
var proto: new OpenLayers.Protocol.HTTP({ # <--- [1] (ie. new variable "proto")
url: "http://www.pub.pub/" + combo + "/somestuff/", # <--- this works
format: etc...
})
}
}]
})
我怎么能这样做?感谢您的支持,在此先感谢您。
此致,
格里