将值动态绑定到SAPUI5中的TextView属性

时间:2014-12-17 10:34:41

标签: sapui5

我正在设计一个表格,其中包含填充数据的不同列,从SAP OData后端到textviews。

TextView的设计和semanticColor属性是作为字符串接收的值。但是加载失败并显示错误消息:“以下列方式绑定后,字符串XY不能被解释为设计”//“..是语义颜色”..

oTable.addColumn(new sap.ui.table.Column({
  template : new sap.ui.commons.TextView({
    text : "{MyBackendElement}",
    textAlign : sap.ui.core.TextAlign.Center,
    design : "{Class}",
    semanticColor : "{FontClass},
  }),
  visible : true,
}));

如果我直接输入设计和语义颜色,一切正常,但我如何从我的服务中做到这一点?它需要哪种数据类型?是否可以将括号{}中定义的字符串转换为设计和语义颜色

oTable.addColumn(new sap.ui.table.Column({
  template : new sap.ui.commons.TextView({
    text : "{MyBackendElement}", 
    textAlign : sap.ui.core.TextAlign.Center,
    design : sap.ui.commons.TextViewDesign.Bold,
    semanticColor : sap.ui.commons.TextViewColor.Critical,
  }),
  visible : true,
}));

1 个答案:

答案 0 :(得分:1)

答案部分在于您的问题本身,属性designsemanticColor只接受sap.ui.commons.TextViewDesignsap.ui.commons.TextViewColor类型的值。

然而,就像你的情况一样,你会绑定"字符串"对于这些属性,您需要确保字符串相同,作为可接受类型的可能值列表的最后一个单词。

例如,

sap.ui.commons.TextViewDesign接受

  • sap.ui.commons.TextViewDesign.Bold
  • sap.ui.commons.TextViewDesign.Italic

等等。因此,您需要引入" Bold"或者"斜体"从您的OData并将其绑定到属性。 sap.ui.commons.TextViewColor

也是如此

在您的代码段中,

oTable.addColumn(new sap.ui.table.Column({ template : new sap.ui.commons.TextView({ text : "{MyBackendElement}", textAlign : sap.ui.core.TextAlign.Center, design : "{Class}", semanticColor : "{FontClass}, }), visible : true, }));

'级'会有价值观" Bold"," Italic" ...和' FontClass'会有"严重","默认" ...

的允许值列表
  1. sap.ui.commons.TextViewDesignhere
  2. sap.ui.commons.TextViewColorhere