点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家您好,
这可能很容易做到,但是作为一个新手,我有些困惑。
我有一个绑定到数据库表 A(未命名模型)的SAPUI5表(sap.ui.table.Table)。 组合框使用 selectedKey 属性绑定到表中相应字段的值,并将项模板绑定到表 B (命名模型:f4 (表 A 中的字段文本所在的位置),请参见以下代码:
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Agreement Role ID"}),
模板:新的sap.m.ComboBox({
id:" cbRoleType",
selectedKey:" {AgrRoletpid}",
项目:{路径:" f4>/Role_TypesSet",
模板:oRoleItemTemplate,
templateShareable:" false"}})
}));
从下面的快照中可以看到,selectedKey属性看起来不起作用-出于测试原因,附加的最后一列包含与所选键对应的值,在本例中为 {AgrRoletpid}
对于选定的键值未填充感到沮丧。 尝试了一个发现的技巧,该技巧看起来像是对控件的附加绑定,是对上面语句的补充
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Agreement Role ID"}),
模板:新的sap.m.ComboBox({
id:" cbRoleType",
selectedKey:" {AgrRoletpid}",
项目:{路径:" f4>/Role_TypesSet",
模板:oRoleItemTemplate,
templateShareable:" false"}}) .bindProperty(" value"," AgrRoletpid")
}));
现在正在发生某些事情,但并不是我所期望的。 组合中显示了实际值,问题在于,我应该看到说明(而不是值)(请参见图2)。 现在,我没有选择文本"角色1",而是有了它的密钥(301 = Role 1)
从上面显而易见,我要做的就是显示来自表 B 的文本并将键绑定到表 A 以保存该值。 应该很简单,但似乎我在这里缺少任何帮助吗?
最诚挚的问候,
格雷格(发疯了)
@ VIPLOVE KHUSHALANI :创建项目模板。 表绑定代码:
项目模板:
var oRoleItemTemplate = new sap.ui.core.ListItem({键:" {f4> AgrRoletpId}",文本:" {f4> AgrRoletptxt}"}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Agreement ID"}),
模板:new sap.m.Text({text:" {AgrRoleid}"})
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Agreement Role ID"}),
模板:新sap.m.ComboBox({
id:" cbRoleType",
selectedKey:" {AgrRoletpid}",
//selectedItemId:" {AgrRoletptxt}",
项目:{
路径:" f4>/Role_TypesSet",
模板:oRoleItemTemplate,
templateShareable:"假"}
})。bindProperty(" value"," AgrRoletpid")
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Valid From"}),
模板:new sap.m.Text({text:" {path:'ValidFrom',type:'sap.ui.model.type.Date',formatOptions:{style:'medium',strictParsing:true}}"} )
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Valid To"}),
模板:new sap.m.Text({text:" {path:'ValidTo',type:'sap.ui.model.type.Date',formatOptions:{style:'medium',strictParsing:true}}"} )
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Staff Type ID"}),
模板:new sap.m.Text({text:" {StaffTypeid}"})
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Staff ID"}),
模板:new sap.m.Text({text:" {StaffId}"})
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" First name"}),
模板:new sap.m.Text({text:" {FirstName}"})
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" Last Name"}),
模板:new sap.m.Text({text:" {LastName}"})
}));
this.oRoleTable.addColumn(new sap.ui.table.Column({
标签:new sap.m.Label({text:" TEST"}),
模板:new sap.m.Text({text:" {AgrRoletpid}"})
}));
表绑定(不确定在进行动态绑定之后是否仍需要模板,但是无论有无行为)
var roleKey =" Agreement_Roles";
this.oRoleTable.bindRows({
路径:roleKey,
模板:oTemplate,
templateShareable:false});
comboerror1.jpg (157.3 kB)
嗨..
我想在这里提到的两件事。
第一个bindProperty(" value"," AgrRoletpid ")将绑定属性" value"而不是属性" selectedKey"。 此处的value属性绑定来自扩展名sap.m.inputbase。 因此,它不会给您文本值绑定为组合框中的聚合值。
第二个可以提供 oRoleItemTemplate ..组合框模板..模板中可能存在错误的代码..还提供如何将模型绑定到表上的代码..
谢谢
Viplove
你好,
在视图中无法正常使用后,我切换到在上面附带的控制器,表和模型绑定代码中创建模板,谢谢。
一周热门 更多>