我对编码和StackOverflow非常陌生。我正在尝试创建一个sapui5值帮助对话框( class sap.ui.comp.valuehelpdialog.ValueHelpDialog),它应该最终过滤来自supposed服务中的用户表的搜索请求。
现在,我甚至不能让它正确地显示我的模拟数据。mockdata由一个"Personen.json“组成,其中有一个包含如下字段的用户数组,如下面的示例片段:
[{
"BewId": "2123456789",
"Posno": 1,
"PNumber": "P87879876",
"Firstname": "Heinz",
"Company": "Some company",
"IsIntern": true,
"Lastname": "Wolff"
}, {
"BewId": "2123456789",
"Posno": 2,
"PNumber": "P23498711",
"Firstname": "Karl",
"Company": "some company",
"IsIntern": true,
"Lastname": "Schmidt"
}]我试过所有我能想到的东西:
getTableAsync().then而不是getTable()。/Personen的完整路径(我认为这在当前JSON结构中是没有意义的)。bindRows()而不是bindAggregation()。sap.m.Table而不是sap.ui.table.Table在根视图上创建一个普通表(据我所知,这是ValueHelpDialog内部表的类型)。这显示数据时没有问题。Personen集合,并在绑定函数中更改到/Personen的路径。addColumn()定义控制器中的列结构,而不是像现在这样在模型中定义它:
"columnModel.json“{cols":{”标签“:"{i18n>pNumber }”、“模板”:"{PNumber }“}、{”标签“:"{i18n>firstname}”、“模板”:"{Firstname}“}、{”标签“:"{i18n>lastname}”、“模板”:“{i18n>lastname}”}Bellow是我的主视图控制器中的值帮助按下的事件处理程序函数:
handleValueHelp: function () {
var oColModel = this.getView().getModel("columnsModel");
var oUserModel = this.getView().getModel("userModel");
this._oValueHelpDialog = sap.ui.xmlfragment("appName.view.ValueHelpPopover", this);
this.getView().addDependent(this._oValueHelpDialog);
var oTable = this._oValueHelpDialog.getTable();
oTable.setModel(oUserModel);
oTable.setModel(oColModel, "columns");
var oTemplate = new sap.m.ColumnListItem({
type: sap.m.ListType.Active,
cells: [
new sap.m.Label({
text: "{PNumber}"
}),
new sap.m.Label({
text: "{Firstname}"
}),
new sap.m.Label({
text: "{Lastname}"
})
]
});
if (oTable.bindRows) {
oTable.bindAggregation("rows", "/");
}
if (oTable.bindItems) {
oTable.bindAggregation("items", "/", oTemplate);
}
this._oValueHelpDialog.update();
this._oValueHelpDialog.open();
}我的XML视图片段用于ValueHelpDialog:
"ValueHelpPopover.fragment.xml"
<core:FragmentDefinition xmlns:vhd="sap.ui.comp.valuehelpdialog" xmlns:core="sap.ui.core" xmlns="sap.m">
<vhd:ValueHelpDialog id="valueHelp" title="{i18n>valueHelpTitle}" ok=".onValueHelpOkPress" cancel=".onValueHelpCancelPress"
afterClose=".onValueHelpAfterClose" key="Firstname" descriptionKey="Lastname"></vhd:ValueHelpDialog>
目前,我没有收到任何错误消息,但是我得到了这样的输出:当我选择行时,我可以从键中看出它们是来自模拟json模型的对象,但是单元格文本仍然是空的。
我希望绑定的值PNummer、Firstname、Lastname显示在单元格中,如模板中所示。
一些我想尝试但还没有得到机会的事情,或者不知道该怎么做:
任何帮助都将不胜感激。
干杯
发布于 2019-10-04 13:03:22
由于某种原因,在Value Help对话框的xml视图popover片段中定义一个表,它会导致实际内部表出现问题,即使在我删除了该表,并且代码在本质上与它仍然无法工作时是一样的。知道为什么会这样吗?我很想了解这个问题。
发布于 2019-10-04 12:25:41
将列添加到表中,然后可以在表中看到具有实际值的行。
var oColumn = new sap.ui.table.Column({
label: new sap.m.Label({text: "PNumber"}),
template: new sap.m.Text({text: "{PNumber}"}),
width: "100px"
});
if (oTable.bindRows) {
oTable.addColumn(oColumn);
oTable.bindAggregation("rows", "/");
}https://stackoverflow.com/questions/58188148
复制相似问题