(즉, 당신의 '행'.) :
onInit: function() {
//set model
var oModel=new sap.ui.model.json.JSONModel();
oModel.loadData("model/modelTabCeScd.json", "", false);
this.getView().setModel(oModel);
this.getView().bindElement("/elements/");
//add editable info in case of new row
var table =this.byId("idDetailsTable");
var aCols= table.getColumns();
for(var i = 0; i<aCols.length; i++){
var bEnabled=oModel.getProperty("/elements/idDetailsTable/cols/"+i+"/enabled/");
aCols[i].getHeader().enabled=bEnabled;
}
}
:
를이 내 init 함수입니다 여기에 내가 새로운 대화
onPressAddNewRow: function (oEvent) {
if (!this.rowTableDialog) {
this.rowTableDialog = sap.ui.xmlfragment(
"ui5bp.view.fragment.RowTableDialog",
this
);
this.getView().addDependent(this.rowTableDialog);
}
var form =this.rowTableDialog.getContent()[0];
var table =this.byId("idDetailsTable");
var aCols= table.getColumns();
form.removeAllContent();
for(var c = 0; c<aCols.length; c++){
var oCol=aCols[c];
form.addContent(new sap.m.Label({text:oCol.getHeader().getProperty("text")}));
form.addContent(new sap.m.Input({value:"", enabled:oCol.getHeader().enabled, editable:true}));
}
this.rowTableDialog.open();
}
의 생성이 내 모델 http://jsbin.com/saqorarafo/1/edit?js
01 관리
이 솔루션이 작동합니다! 그러나 결국 @Qualiture 제안을 듣고 각 테이블마다 하나의 대화 상자를 만들었습니다!
괜찮지 만 다른 표가 있고 (다른 열과 함께) 대화 상자에 동일한 필드 (레이블)가 없습니다. – padibro
그게 문제가 아니겠습니까? 이 경우 테이블의 대상 필드 (열)와 일치하는 새 객체를 만들고 해당 객체를 JSONModel 배열에 추가하십시오. – Qualiture
솔루션을 이해했지만 새 모델을 다시 만들지는 않습니다. 내가 테이블을 바인딩하는 데 사용하는 동일한 모델을 재사용하고 싶다. 내 대답을 좋아하니? @Qualiture – padibro