This is controller List binding with json, below I have shown application structure,view part,controller part, json part and index part of the application.Go through it and please let me know in case of any issue/doubt.
Application Structure
View Part
<core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
controllerName="view.s1" xmlns:html="http://www.w3.org/1999/xhtml">
<Page title="List with Json" id="pageid">
<content>
</content>
</Page>
</core:View>
controllerName="view.s1" xmlns:html="http://www.w3.org/1999/xhtml">
<Page title="List with Json" id="pageid">
<content>
</content>
</Page>
</core:View>
Controller Part
sap.ui.controller("view.s1", {
onInit:function()
{ var json=new sap.ui.model.json.JSONModel("model/data.json");
this.getView().setModel(json);
var list= new sap.m.List({ mode:"Delete", "delete":this.handleDelete,
OR "delete":[this.handleDelete,this]});
var stanardListItm=new sap.m.StandardListItem({
title:"{fname}",
counter:"{mob}"
});
list.bindItems("/Records",stanardListItm);
OR
list.bindAggregation("items","/Records",stanardListItm)
var page_ID=this.getView().byId("pageid");
page_ID.addContent(list)
this.getView().setModel(json);
var list= new sap.m.List({ mode:"Delete", "delete":this.handleDelete,
OR "delete":[this.handleDelete,this]});
var stanardListItm=new sap.m.StandardListItem({
title:"{fname}",
counter:"{mob}"
});
list.bindItems("/Records",stanardListItm);
OR
list.bindAggregation("items","/Records",stanardListItm)
var page_ID=this.getView().byId("pageid");
page_ID.addContent(list)
},
// when you click on delete Icon then this will fire....
handleDelete:function(EvT)
{ var list_ID=sap.ui.getCore().byId(EvT.getSource().sId);
var Data=list_ID.getModel();
var current_Item=EvT.getParameter("listItem");
//First Way-It will delete item from UI, not from model.....
current_Item .destroy();
OR
// Second way
var Index=list_ID.indexOfItem(current_Item);
Data.getData().Records.splice(Index,1);
Data.updateBindings();
OR
OR
// Third way
var path=current_Item.getBindingContext().sPath;
var spltarr=path.split("/");
var InDeX=spltarr[spltarr.length-1];
Data.getData().Records.splice(InDeX,1);
Data.updateBindings();}
});
data.json
{ "Records":[{
"fname":"vikas",
"mob":1111111111
},
{
"fname":"raj",
"mob":2222222222
},
{
"fname":"Rahul",
"mob":3333333333
},
{
"fname":"Nikhil",
"mob":4444444444
}
]}
index.html
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
<script src="resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m"
data-sap-ui-theme="sap_bluecrystal">
</script>
<!-- only load the mobile lib "sap.m" and the "sap_bluecrystal" theme -->
<script>
sap.ui.localResources("view");
var app = new sap.m.App({initialPage:"idview1"});
var page = sap.ui.view({id:"idview1", viewName:"view.s1",type:sap.ui.core.mvc.ViewType.XML});
app.addPage(page);
app.placeAt("content");
</script>
</head>
<body class="sapUiBody" role="application">
<div id="content"></div>
</body>
</html>
No comments:
Post a Comment