Data binding 在XML视图中使用筛选数据的SAPUI5列表绑定

Data binding 在XML视图中使用筛选数据的SAPUI5列表绑定,data-binding,sapui5,jsonmodel,Data Binding,Sapui5,Jsonmodel,我希望你做得很好 目前,我正在尝试在控制器的oninit事件中将筛选数据绑定到xml视图中的列表控件odata服务url如下 ?$filter=VendorID%20eq%201 我使用了下面的代码 var sListURI = "http://mikmo.mylocalhost.com/MIKMOWCFDataService.svc"; var oListModel = new sap.ui.model.odata.ODataModel(sListURI, false);

我希望你做得很好

目前,我正在尝试在控制器的oninit事件中将筛选数据绑定到xml视图中的列表控件odata服务url如下

?$filter=VendorID%20eq%201

我使用了下面的代码

var sListURI = "http://mikmo.mylocalhost.com/MIKMOWCFDataService.svc";
        var oListModel = new sap.ui.model.odata.ODataModel(sListURI, false);
        var oListModelJson = new sap.ui.model.json.JSONModel();
        oListModel.oHeaders = {
            "DataServiceVersion": "2.0",
            "MaxDataServiceVersion": "2.0"
        };
        oListModel.read("/view_VendorGroup", null, ["$filter=VendorID eq " + window.VendorID], null, function(oData, oResponse) {
            oListModelJson.setData(oData);
            oListModelJson.loadData(oData);

        }, null);

        //oListModelJson.bindList(sPath, [oContext], [aSorters], [aFilters], [mParameters])
        oListModelJson.attachRequestCompleted(function(oData, oEvent) {

        });
        myList.setModel(oListModelJson, "VendorGroups");
在XML视图中

<List growing="true" growingThreshold="100" headerText="{i18n&gt;businessareas}" id="lstVendorGroups">
                            <items>
                                <!--<ObjectListItem title="{VendorGroups>GroupName}" type="Active" press=".onItemSelected" />  -->
                                <StandardListItem id="stListItem" />
                            </items>
                        </List>

我需要知道的是如何将attachRequestCompleted方法中的列表项与数据绑定
提前感谢

您需要绑定sap.m.List的聚合“项”。 我将在您的代码中修改以下内容:

  • oDataModel的Read方法:一旦您使用oDataModel执行读取操作,您将获得成功处理程序,您将在其中设置本地JSON模型中的数据。代码行:
    oListModelJson.loadData(oData)不是必需的,因为前一行代码是:
    oListModelJson.setData(oData)-已将数据设置为本地JSON模型

  • AttachRequestCompleted of JSON模型:我不会使用此方法,因为在将数据(通过AJAX调用)直接加载到JSON模型时会使用此方法。但在这里,当您使用oData模型进行获取时,它不是必需的。因此,我将删除处理程序

  • 在XML视图中,需要告诉sap.m.List对象数组所在的路径。考虑到已经应用了过滤器,JSON模型将包含以“results”关键字开头的数据。如果以下代码没有帮助,请粘贴JSON模型数据:

  • XML代码:

    <List growing="true" growingThreshold="100" headerText="{i18n&gt;businessareas}" id="lstVendorGroups" items="{VendorGroups>/results}">
                                <items>
                                    <!--<ObjectListItem title="{VendorGroups>GroupName}" type="Active" press=".onItemSelected" />  -->
                                    <StandardListItem id="stListItem" />
                                </items>
                            </List>
    

    您需要绑定sap.m.List的聚合“项”。 我将在您的代码中修改以下内容:

  • oDataModel的Read方法:一旦您使用oDataModel执行读取操作,您将获得成功处理程序,您将在其中设置本地JSON模型中的数据。代码行:
    oListModelJson.loadData(oData)不是必需的,因为前一行代码是:
    oListModelJson.setData(oData)-已将数据设置为本地JSON模型

  • AttachRequestCompleted of JSON模型:我不会使用此方法,因为在将数据(通过AJAX调用)直接加载到JSON模型时会使用此方法。但在这里,当您使用oData模型进行获取时,它不是必需的。因此,我将删除处理程序

  • 在XML视图中,需要告诉sap.m.List对象数组所在的路径。考虑到已经应用了过滤器,JSON模型将包含以“results”关键字开头的数据。如果以下代码没有帮助,请粘贴JSON模型数据:

  • XML代码:

    <List growing="true" growingThreshold="100" headerText="{i18n&gt;businessareas}" id="lstVendorGroups" items="{VendorGroups>/results}">
                                <items>
                                    <!--<ObjectListItem title="{VendorGroups>GroupName}" type="Active" press=".onItemSelected" />  -->
                                    <StandardListItem id="stListItem" />
                                </items>
                            </List>
    

    亲爱的Rahul感谢您的回复我按照您的建议更新了代码,但是仍然没有运气,但是当我使用console.log进行JSONMODEL时,我得到了准确的筛选结果,但是没有绑定到控件的数据这里是JSONMODEL日志结果的结果:数组[3]0:Object GroupName:“堕胎策略/Pro堕胎权限”VendorGroupID:1 VendorID:1元数据:对象_proto:Object 1:Object 2:Object您能告诉我您是如何在控制器代码中获取myList的吗?另外,您是否更新了XML代码?我已更新了控制器代码:请使用:
    this.byId('lstVendorGroups').setModel(oListModelJson,“VendorGroups”)其中
    myList.setModel(oListModelJson,“VendorGroups”)
    被使用Dear Rahul感谢您的回复我按照您的建议更新了代码,但仍然不走运但是当我对JSONMODEL使用console.log时,我得到了准确的筛选结果,但没有绑定到控件的数据这里是JSONMODEL日志结果的结果:数组[3]0:Object GroupName:“堕胎策略/Pro堕胎权限”VendorGroupID:1 VendorID:1元数据:对象_proto:Object 1:Object 2:Object您能告诉我您是如何在控制器代码中获取myList的吗?另外,您是否更新了XML代码?我已更新了控制器代码:请使用:
    this.byId('lstVendorGroups').setModel(oListModelJson,“VendorGroups”)其中
    myList.setModel(oListModelJson,“VendorGroups”)已被使用