我一直在尝试在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,但该值不是字符串。
我非常感谢任何帮助我纠正这个问题的解决方案。
我有同样的问题,并找到了(快速和脏)的方法来处理错误。
我按照你的方法做了一个格式化程序:
formatCell: function (iValue) {
try {
iValue.toString();
} catch (err){
iValue = "foo";
}
return iValue.toString();
}
基本上我强制值(以各种可能的方式)成为一个字符串...如果你在toString()
上尝试null
它会抛出一个错误所以我只是分配一个虚拟字符串...
我假设如果将null
分配给customData,则只会抛出错误