动态数据绑定与对话框

时间:2017-02-22 12:30:16

标签: sap sapui5

我有一个包含物品的清单。点击后,我想打开一个新对话框并将其绑定到有关所点击项目的一些详细信息。

我的数据源是带有OData接口的SAP HANA数据库。界面如下:

Table/Path: Items
|ID|NAME|PRICE|ITEM_DETAILS (Navigation Property)|

Table/Path: ItemsDetails
|ID|ITEM_ID|...|

该列表与Items绑定,效果很好。单击一下,我想将对话框绑定到导航属性ITEM_DETAILS,但新绑定不起作用。该对话框仍然绑定/显示到“旧”路径Items而不是ItemsDetails

对话框片段:

<core:FragmentDefinition
    xmlns="sap.m"
    xmlns:core="sap.ui.core">
    <SelectDialog
        id="detailInformation"
        noDataText="No data..."
        title="{item}">
        <StandardListItem
            title="{ID}"
            description="{FREQUENCY}"
            type="Active" />
    </SelectDialog>
</core:FragmentDefinition>

事件处理程序:

if (!this.selectLoadProfile) {
    this.selectLoadProfile = sap.ui.xmlfragment(this.getView().getId(), "de.xxx.view.fragment.Dialog", this);
    this.getView().addDependent(this.selectLoadProfile);
    this.selectLoadProfile.bindElement("ITEM_DETAILS");
}
this.selectLoadProfile.open();

有人可以告诉我如何动态加载数据吗?

1 个答案:

答案 0 :(得分:0)

您的问题让我感到有点困惑,我从中理解的是您在列表项目的视图中有一个列表,打开一个对话框,其中包含项目详细信息,该项目是项目的导航属性。以下是您正在尝试的代码。

@echo off
setlocal
set file="test.cmd"
set maxbytesize=1000

FOR /F "usebackq" %%A IN ('%file%') DO set size=%%~zA

if %size% LSS %maxbytesize% (
    echo.File is ^< %maxbytesize% bytes
) ELSE (
    echo.File is ^>= %maxbytesize% bytes
)

此声明并非特定于您要绑定的项目详细信息。请尝试使用以下绑定路径。

this.selectLoadProfile.bindElement("ITEM_DETAILS");

由于上面的语句处于条件this.selectLoadProfile.bindElement("ITEM(id)/ITEM_DETAILS"); ,请确保每次都执行,以便更新Element的绑定。

我希望这对你有用。