Property binding 和一个对象的值关联。
上面的例子:应用控制器办法 formatPhoneNumbersAsCSV
显示业务合作伙伴联系人的电话号码列表,以逗号分隔:
<SimpleForm binding="{/BusinessPartnerList('42')}"> <Label text="Phone number list" /> <Text text="{path : 'BP_2_CONTACT', mode : 'OneTime', targetType : 'any', formatter : '.formatPhoneNumbersAsCSV'}" /></SimpleForm>
下面 XML 视图里,在 Text 控件里,显示 id 为 42 的 Business Partner 模型的属性值 BP_2_CONTACT
,并且用自定义格局器 .formatPhoneNumbersAsCSV
在电话号码之间加上逗号分隔符。
OData V4 模型依据控件或应用程序申请的数据范畴,主动确定
零碎查问选项 $top
和 $skip
.
在上面的示例中,生成的第一个申请是 GET People('angelhuffman')/Friends?$expand=Friends&$skip=0&$top=107。 $top 的值是依据申请数据的长度 (7) 加上控件提供的预取大小 (100) 计算得出的。
<table:Table id="PeopleTable" width="auto" title="People" visibleRowCount="7" rows="{ path:'/People(\'angelhuffman\')/Friends', parameters: { $expand:'Friends' } }"> <table:columns> ... </table:columns></table:Table>
另一种分页机制是服务器驱动分页,服务器只返回申请数据的一部分以限度响应大小。 自 SAPUI5 1.72 起,OData V4 模型反对此机制。该模型会将检索到的数据与对控件或应用程序的响应一起提供。 后续申请不会再主动触发,只有在控件或应用程序向模型申请附加
数据时才会触发。
只有 list 和 context binding 反对 OData 零碎查问选项 $apply、$count、$expand、$filter、$orderby、$search 和 $select,property binding 不反对。
应用 JavaScript 进行数据绑定的例子:
oView.byId("SalesOrderTable").bindItems({ path : "/SalesOrderList", parameters : { "$count" : true, "$expand" : { "SO_2_SOITEM" : { "$orderby" : "ItemPosition", "$select" : ["ItemPosition", "Quantity", "QuantityUnit", "SalesOrderID"] } }, "$filter" : "BuyerName ge 'M'", "$orderby" : "GrossAmount desc", "$select" : ["BuyerName", "CurrencyCode", "GrossAmount", "Note", "SalesOrderID"] }});
应用 XML 视图进行数据绑定的例子:
<Table growing="true" growingThreshold="5" id="SalesOrders" items="{ path : '/SalesOrderList', parameters : { $count : true, $expand : 'SO_2_BP', $filter : 'BuyerName ge \'M\'', $orderby : 'GrossAmount desc', $select : 'BuyerName,CurrencyCode,GrossAmount,Note,SalesOrderID' }, }">
$expand 不仅仅能够是字符串,也能够是一个 JSON 对象:
<Table growing="true" growingThreshold="5" id="SalesOrders" items="{ path : '/SalesOrderList', parameters : { $count : true, $expand : { 'SO_2_SOITEM' : { '$orderby' : 'ItemPosition', '$select' : ['ItemPosition','Quantity','QuantityUnit','SalesOrderID'] } }, $filter : 'BuyerName ge \'M\'', $orderby : 'GrossAmount desc', $select : ['BuyerName','CurrencyCode','GrossAmount','Note','SalesOrderID'] }, }">
OData V4 模型容许绑定由参数 $count 设置为 true 的 ODataListBinding 读取的实体汇合的内联计数。不沉闷的上下文(也就是说,没有显示在以后列表控件里的记录)不影响
这个计数;
在上面的示例中,表题目绑定到 $count
,因而示意绑定到表的汇合中的销售订单实体的数量。
<Table id="SalesOrders" items="{ path : '/SalesOrderList', parameters : { $count : true, } }"> <headerToolbar> <Toolbar> <content> <Title id="SalesOrdersTitle" text="{$count} Sales Orders"/> </content> </Toolbar> </headerToolbar> ...</Table>