私はこれに頭を悩ませてきましたが、これが可能かどうか疑問に思っています。GeoExt.form.FormPanelのプロトコルを次のように置き換えたいと思います。
- フォームパネルをレンダリングするために、フォームパネルの外側で変数「proto」をnullとして定義しました(var proto = null)。
- 次に、「proto」がフォームパネル内に入ります(プロトコル:proto)。
- ボタンのハンドラー関数で、新しい変数「proto」が定義されています。フォームパネル内でこの新しい変数を置き換えたいと思います。
extjs、geoext、openlayersはjavascriptライブラリであるため、フォームパネルでハンドラー内の変数「proto」にアクセスできるようにするために「eval」などを試しましたが、今のところうまくいきません。これを示す簡単な例を次に示します。
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...
})
}
}]
})
どうすればこれを行うことができますか?よろしくお願いします。
よろしくお願いします、
ゲリー