Hi Guys,
I am trying to implement binding of two models to a single control i.e; sap.ui.table.Table , and i am trying it by using named models in my controller. am facing an issue of overriding of the second model with the first model.
The following code shows the implementation...
View:
sap.ui.jsview("named_model_example1.View1", {
getControllerName : function() {
return "named_model_example1.View1";
},
createContent : function(oController) {
var oTable1 = new sap.ui.table.Table("oTable1_Id", {
visibleRowCount: 8,
editable: false
});
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel2>CUSTID}"
});
oTable1.addColumn(new sap.ui.table.Column("column1", {
label: new sap.ui.commons.Label("label1", {
text: "CUSTID",
design: "Bold",
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel1>lastname}"
});
oTable1.addColumn(new sap.ui.table.Column("column2", {
label: new sap.ui.commons.Label("label2", {
text: "lastname",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel1>FIRSTNAME}"
});
oTable1.addColumn(new sap.ui.table.Column("column3", {
label: new sap.ui.commons.Label("label3", {
text: "FIRSTNAME",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel1>EMAIL}"
});
oTable1.addColumn(new sap.ui.table.Column("column4", {
id: "column4",
label: new sap.ui.commons.Label("label4", {
text: "EMAIL",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel2>MOBILE}"
});
oTable1.addColumn(new sap.ui.table.Column("column5", {
label: new sap.ui.commons.Label("label5", {
text: "MOBILE",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel2>CITY}"
});
oTable1.addColumn(new sap.ui.table.Column("column6", {
label: new sap.ui.commons.Label("label6", {
text: "CITY",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel2>ZIPCODE}"
});
oTable1.addColumn(new sap.ui.table.Column("column7", {
label: new sap.ui.commons.Label("label7", {
text: "ZIPCODE",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel2>STATE}"
});
oTable1.addColumn(new sap.ui.table.Column("column8", {
label: new sap.ui.commons.Label("label8", {
text: "STATE",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel1>COUNTRY}"
});
oTable1.addColumn(new sap.ui.table.Column("column9", {
label: new sap.ui.commons.Label("label9", {
text: "COUNTRY",
design: "Bold"
}),
visible: true,
template: oControl
}));
var oControl = new sap.ui.commons.TextView({
text: "{JsonModel1>ADDRESS}"
});
oTable1.addColumn(new sap.ui.table.Column("column10", {
label: new sap.ui.commons.Label("label10", {
text: "ADDRESS",
design: "Bold"
}),
visible: true,
template: oControl
}));
oTable1.bindRows("JsonModel1>/createCustomer1");
oTable1.bindRows("JsonModel2>/createCustomer2");
var oElements=[oTable1];
return oElements;
}
});
Controller:
onInit: function() {
oData1={
createCustomer1:[
{lastname:"BENARJI",FIRSTNAME:"GANAPATHI",EMAIL:"BE@TLI.COM",COUNTRY:"USA",ADDRESS:"NEW STREET"},
{lastname:"VISHAL",FIRSTNAME:"KAPOOR",EMAIL:"VK@TLI.COM",COUNTRY:"USA",ADDRESS:"NEW STREET"},
{lastname:"SUDHIR",FIRSTNAME:"SHOW",EMAIL:"BN@TLI.COM",COUNTRY:"USA",ADDRESS:"NEW STREET"},
{lastname:"HEM",FIRSTNAME:"CHAND",EMAIL:"HM@TLI.COM",COUNTRY:"USA",ADDRESS:"NEW STREET"}
]
}
oData2={
createCustomer2:[
{CUSTID:"2000",MOBILE:"+34321",CITY:"CHICAGO",ZIPCODE:"60192",STATE:"CALIFORNIA"},
{CUSTID:"2001",MOBILE:"+34321",CITY:"CHICAGO",ZIPCODE:"60192",STATE:"CALIFORNIA"},
{CUSTID:"2002",MOBILE:"+34123",CITY:"CHICAGO",ZIPCODE:"60192",STATE:"CALIFORNIA"},
{CUSTID:"2003",MOBILE:"+345213",CITY:"CHICAGO",ZIPCODE:"60192",STATE:"CALIFORNIA"}
]
}
var oModel1=new sap.ui.model.json.JSONModel(oData1);
sap.ui.getCore().setModel(oModel1,"JsonModel1");
var oModel2=new sap.ui.model.json.JSONModel(oData2);
sap.ui.getCore().setModel(oModel2,"JsonModel2");
},
Please help me...
Regards,
Ganesh.