乐趣区

关于sap:关于-SAP-UI5-OData-V4-模型的-Property-Binding-使用介绍

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>
退出移动版