2011-06-14 6 views
1

가이 코드를 변경하지 않습니다의 ExtJS 콤보 상자 피커는

var comboStore = new Ext.data.Store({ 
proxy : new Ext.data.HttpProxy({ 
    url : '../cxf/rest/CustomerService/getGroups' 
}), 
reader : new Ext.data.JsonReader({ 
    fields : [ 'id', 'name' ] 
}), 
autoLoad : true 
}); 

및 페이지 값이 콤보 상자에 성공적으로 채워집니다로드

var groupsCombo = new Ext.form.ComboBox({ 
name : 'GroupsCombo', 
fieldLabel : 'Groups', 
mode : 'local', 
store : comboStore, 
displayField : 'name', 
triggerAction : 'all', 
valueField : 'groupID', 
selectOnFocus:true, 
width : 130 
}); 

. 그러나 콤보에서 값을 선택하려고하면 첫 번째 값이 항상 선택됩니다. 나는 여기서 프로그램 적으로 이야기하지는 않지만 브라우저에서도 첫 번째 값이 선택 될 것입니다.

감사합니다.

+0

죄송합니다 : S 은 내가이 통지를하지 않은 방법을 몰라,하지만 JSON 데이터 저장소에 ID가 'ID'의 istead을 GROUPID한다 .. 나는이 변화하고 지금 일하고있어. – Ticker23

+0

답변을 추가하고 승인 됨으로 표시하면 비슷한 문제가있는 사람들이 해결 방법을 볼 수 있습니다 – JamesHalsall

+0

나는 싶었습니다. 그러나 자신의 질문에 대답하기위한 시간이있었습니다 – Ticker23

답변

1

죄송합니다. S : 어떻게 알지 못했지만, Json 데이터 저장소의 ID는 'id'의 groupID istead 여야합니다. 변경했으며 현재 작동 중입니다.

0

JsonStore를 사용해 보았습니까? 다음과 같이 해보십시오.

var comboStore = new Ext.data.JsonStore({ 
     id: 'JsonStore', 
     idProperty: 'id', 
     autoLoad: true, 
     idProperty: 'id', 
     root: <root of your JSON>, 
     fields: [ 'id', 'name' ], 
     proxy: new Ext.data.ScriptTagProxy({ 
      api: { 
       read: '../cxf/rest/CustomerService/getGroups', 
      } 
     }) 
    }); 

그런 다음 ComboBox 용 스토어를 사용하십시오. JsonStore가 자동으로 JsonReader를 생성합니다. JsonReader는 코드에서 충돌이 발생한 곳이라고 생각합니다.