在sap.ui.table.TreeTable模板中使用CustomData的问题

问题描述 投票:1回答:1

我一直在尝试在sap.ui.TreeTable中使用CustomData。我从我的ODataModel传递CustomData的值,但我一直在收到类似的错误

带有键cssColor的CustomData应写入Element sap.m.Text #__ text25 -__ clone22的HTML,但该值不是字符串。

所以我使用formatter将字符串传递给值:

<t:Column
  resizable="false"
  width="5.5rem"
  sortProperty="CMPlan"
>
  <t:multiLabels>
    <Text
      text="{i18n>currMonth}"
      textAlign="Center"
      width="100%"
      class="boldHeader"
    />
    <Text
      text="{i18n>plan}"
      textAlign="Center"
      width="100%"
      class="boldHeader"
    />
  </t:multiLabels>
  <t:template>
    <Text
      width="100%"
      text="{treeJSONModel>Plan}"
    >
      <customData>
        <core:CustomData
          key="cssColor"
          value="{
            path: 'treeJSONModel>colorCode',
            formatter: '.formatter.colorString'
          }"
          writeToDom="true"
        />
      </customData>
    </Text>
  </t:template>
</t:Column>

在我的格式化程序中,我有一个如下函数:

colorString: function(value) {
  if (value === "YELLOW") {
    return "YELLOW";
  } else {
    return "noColor";
  }
},

我得到的错误数量已经减少,但我仍然在控制台中看到此错误

带有键cssColor的CustomData应写入Element sap.m.Text #__ text37 -__ clone40的HTML,但该值不是字符串。

我非常感谢任何帮助我纠正这个问题的解决方案。

sapui5
1个回答
0
投票

我有同样的问题,并找到了(快速和脏)的方法来处理错误。

我按照你的方法做了一个格式化程序:

formatCell: function (iValue) {
        try {
            iValue.toString();
        } catch (err){
            iValue = "foo";
        }
        return iValue.toString();
    } 

基本上我强制值(以各种可能的方式)成为一个字符串...如果你在toString()上尝试null它会抛出一个错误所以我只是分配一个虚拟字符串...

我假设如果将null分配给customData,则只会抛出错误

© www.soinside.com 2019 - 2024. All rights reserved.