2014-06-12 3 views
1

ODataModel에 테이블을 연결했습니다. 테이블에서 열 중 하나가 드롭 다운 목록입니다. 목록에는 약 3 개의 값이 있습니다. 그것은 나에게 약간 혼란 스럽지만 그런 시나리오와 함께가는 방법은 무엇입니까? 드롭 다운에 원하는 값으로 구성된 다른 모델을 묶어야하고 테이블에 연결된 ODataModel에서 오는 응답에 바인딩되는 속성을 갖춰야합니까?테이블 열에서 Combobox 채우기

다음과 같은 사항이 맞습니까? 하지만 더 많은 값을 드롭 다운 및 더 많은 ....있는 경우 좋지 않을 수도 있습니다 ODataModel "Status"아래에 언급 된이 "키"바인딩 할 경우 진행 방법? 여기에서 나는 ODataModel에서 오는 "StatusText"에 combobox의 "value"속성을 묶었습니다. 는하지만 (테이블과 연결되어 있습니다) ODataModel에서 "상태"어떤 도움을 주시면 감사하겠습니다

oTable.addColumn(
    new sap.ui.commons.ComboBox({ 
    items: [ 
           new sap.ui.core.ListItem({text: "New",key:"1"}).bindProperty("text","StatusText").bindProperty("key","Status"), 
           new sap.ui.core.ListItem({text: "In Process",key:"2"}), 
           new sap.ui.core.ListItem({text: "Completed",key:"3"}) 
           ] 
          }).bindProperty("value","StatusText") 
); 

응답을 ListItem의 "키"속성을 묶어합니다.

감사

+0

희망을 얻었 으면 좋겠는데 바인딩 주제가 분명하지 않습니다. – zyrex

답변

0

이 테이블에서 작동하지만, 나는 당신의 콤보 상자는 여전히 바인딩 일부 오류가있는 것 같아요.

var oCombobox = new sap.ui.commons.ComboBox({ 
     items: [ 
       new sap.ui.core.ListItem({text: "New",key:"1"}).bindProperty("text","StatusText").bindProperty("key","Status"), 
       new sap.ui.core.ListItem({text: "In Process",key:"2"}), 
       new sap.ui.core.ListItem({text: "Completed",key:"3"}) 
       ] 
      }).bindProperty("value","StatusText"); 

oTable.addColumn(new sap.ui.table.Column({ 
    template : oCombobox, 
    visible : true, 
})); 

결과 유형 (표)에 정의 된 {Firstname}이라는 oData 필드가 있다고 가정 해 보겠습니다. 지금까지 내가 이해, 당신은 당신의 하나로, OData 서비스에서 사용할 수있는 값을 얻으려면

oTable.addColumn(new sap.ui.table.Column({ 
    template : new sap.ui.commons.TextView({ 
     text : "{Firstname}", 
     textAlign : sap.ui.core.TextAlign.Center 
    }), 
    visible : true, 
})); 

을, 그러나 나는 이것이의 경우에는 불가능하다 생각이 테이블에 대해 다음과 같이 테이블에 바인딩 dropdown/combobox 백엔드에서 테이블을 얻으므로 각 행은 하나의 필드에 값을가집니다. -> 하나의 테이블 필드에서 바인드 3 값을 어떻게 나타낼까요?

getDropdown : function() { 

// Create JSON data model 
var oModel = new sap.ui.model.json.JSONModel(); 
oModel.loadData("/sap/opu/odata/sap/YOUR_SERVICE/YourEntitySet"); 
sap.ui.getCore().setModel(oModel); 

// Create a DropdownBox 
var oDropdown = new sap.ui.commons.DropdownBox("DropdownBox", { 
         text: "{Firstname}", 
        }); 

oDropdown.setModel(oModel); 

var oItemTemplate1 = new sap.ui.core.ListItem({ 
         text : "{Firstname}", 
        }); 

oDropdown.bindItems("/d/results", oItemTemplate1); 
// "/d/results" may vary depending on your path 

// return the box 
return oDropdown; 

}, 

당신이 당신의 테이블에 돌아 오는 결과를 사용할 수 있습니다

나는 별도로 백엔드에서 드롭 다운 값을 호출, 자책골 서비스에 드롭 다운을 깨달았다.

보기 :

var dropdown = oController.getDropdown(); 
dropdown.placeAt("content"); 
관련 문제