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