2013-01-15 2 views
0

나는 이것으로 머리를 긁적이고 이것이 가능한지 궁금합니다. 나는 다음과 같은 방법으로 GeoExt.form.FormPanel의 프로토콜을 대체 할 :geoext.form.formpanel에서 프로토콜을 대체하는 방법

  1. 은은 FormPanel을 렌더링하기 위해, 나는은 FormPanel (var에 프로토 = NULL) 이외의 널 (null)과 같은 변수 "프로토를"정의.
  2. "proto"는 formpanel (프로토콜 : proto) 안에 있습니다.
  3. 버튼의 핸들러 함수에서 새로운 변수 "proto"가 정의됩니다. formpanel에서이 새로운 변수를 바꾸려고합니다. 에 extjs는, geoext는, openlayers 자바 스크립트 라이브러리, 나는 등은 FormPanel하지만 지금까지 행운에 액세스 할 수있는 핸들러 내부 변수 "프로토를"만드는 "평가"로 일을 시도했습니다 때문에

. 다음은이를 보여주는 간단한 예입니다.

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... 
      }) 
     } 
    }] 
}) 

어떻게하면됩니까? 미리 감사드립니다.

안부,

GERY

답변

0

이 솔루션은 사용하는 것이 었습니다 "protocol.options.url = NEWURL;" 대신 protocol.destroy(); 또는 protocol.read(); 완전한 설명은 here

입니다.