我一直在琢磨这件事,我想知道这是否可能。我想以以下方式替换GeoExt.form.FormPanel的协议:
由于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...
})
}
}]
})我怎么能这么做?我会感谢你的支持,谢谢提前。
诚挚的问候,
格瑞
发布于 2013-02-14 16:22:34
解决方案是只使用"protocol.options.url = newUrl;“而不是使用protocol.destroy();或protocol.read();一个完整的解释是here
https://stackoverflow.com/questions/14335932
复制相似问题