TableSelectDialog SAPUI5中的OData绑定

TableSelectDialog SAPUI5中的OData绑定,sapui5,Sapui5,我正在尝试在tableselectdialog上进行odata绑定。由于某些原因,我发现很难使用SAP WEB IDE生成片段,因此我没有在对话框中使用片段,而是在控制器上生成了对话框。假设tableselectdialog上可以看到table的大多数属性,我希望不会遇到任何错误。我能把我的小田绑在桌子上。但是当我实现一个tableselectdialog时,数据绑定似乎不起作用。谁能帮我解决这个错误。下面是我的代码 组合框使用handleAddressType方法调用事件按下。我使用的odat

我正在尝试在tableselectdialog上进行odata绑定。由于某些原因,我发现很难使用SAP WEB IDE生成片段,因此我没有在对话框中使用片段,而是在控制器上生成了对话框。假设tableselectdialog上可以看到table的大多数属性,我希望不会遇到任何错误。我能把我的小田绑在桌子上。但是当我实现一个tableselectdialog时,数据绑定似乎不起作用。谁能帮我解决这个错误。下面是我的代码

组合框使用handleAddressType方法调用事件按下。我使用的odata是/sap/opu/odata/srmnxp/UTIL

handleAddressType: function(oEvent) {
    alert(oEvent.oSource.getSelectedKey());
    var selectedAddressKey = oEvent.oSource.getSelectedKey();
    var otableSelectDialog = new sap.m.TableSelectDialog("tableSelectD", {
        noDataText: "No Address Found",
        title: "Select Address",
        columns: [
            new sap.m.Column({
                header: new sap.m.Label({
                    text: "AddressNo"
                })
            }),
            new sap.m.Column({
                header: new sap.m.Label({
                    text: "Name"
                })
            }),
            new sap.m.Column({
                header: new sap.m.Label({
                    text: "City"
                })
            }),
            new sap.m.Column({
                header: new sap.m.Label({
                    text: "Country"
                })
            })
        ],
        items: {
            path: "/",
            template: new sap.m.ColumnListItem({
                cells: [
                    new sap.m.Text({
                        text: "{UTIL>AddressNo}"
                    }),
                    new sap.m.Text({
                        text: "{UTIL>Name}"
                    }),
                    new sap.m.Text({
                        text: "{UTIL>City}"
                    }),
                    new sap.m.Text({
                        text: "{UTIL>Country}"
                    })
                ]
            })
        }
    });
    otableSelectDialog.bindAggregation("items", "UTIL>/ShipToAddressCollection?$filter=Addrtype%20eq%20%27" + selectedAddressKey + "%27",
        new sap.m.ColumnListItem({
            cells: [
                new sap.m.Text({
                    text: "{UTIL>AddressNo}"
                }),
                new sap.m.Text({
                    text: "{UTIL>Name}"
                }),
                new sap.m.Text({
                    text: "{UTIL>City}"
                }),
                new sap.m.Text({
                    text: "{UTIL>Country}"
                })
            ]
        }));
    otableSelectDialog.open();
}
提前感谢

命名模型“UTIL”集在哪里?它在视图、组件和控件上吗?它是通过manifest.json设置的还是手动设置的?如果是手动操作,请说明如何准确地

此外,您的绑定路径看起来有点奇怪:

path : "/", 
“/”应该是什么实体集?此外,您正在代码的其余部分使用命名模型“UTIL”,绑定路径中也缺少该模型。因此,我想在您的案例中,绑定路径应该是这样的:

path : "UTIL>/MyEntitySet",

当然,您必须将“/MyEntitySet”替换为适合您的情况的任何内容。只有在“sap/opu/odata/srmnxp/UTIL”处的服务是命名模型“UTIL”时,这才有效。但是,这个名为“UTIL”的模型与URL字符串“sap/opu/odata/srmnxp/UTIL”中的“UTIL”无关。

My UTIL odata是在component.js中设置的。我假设因为我将绑定路径viw bindAggregation,所以我将在路径上放置什么并不重要,因为它将被替换。实际上它位于configuration.js{name:“UTIL”,masterCollection:“ShipToAddressCollection”,serviceUrl:URI(“/sap/opu/odata/srmnxp/UTIL/”)。目录(),isDefault:false,mockedDataSource:“/srm.shoppingcart.create/model/metadata.xml”},@melai您可以同时绑定多个模型,这就是您命名它们的原因(本例中为UTIL)。如果你已经设定了一个名字,你就必须使用它。否则,框架将查找没有名称的模型(全局模型)。@Nabi
path:“/”
可以引用仅由对象数组组成的未命名模型(在OData上下文中不太可能,但如果处理纯JSON,则很可能)。请参阅@Marc I have use changed the path to this UTIL>/shiptoaddress collection?$filter=Addrtype%20eq%20%27C%27这是我以前用来绑定表的。假设,如果我还将数据用作TableSelectDialog的绑定路径,那么代码应该获得数据