尝试使用XML视图将自定义数据属性附加到表列时,我在Chrome浏览器控制台中收到以下错误:
2016-02-12 12:02:38.331040 CustomData with key strikethrough should be written to HTML of Element sap.m.Text#__text10-col1-row6 but the value is not a string. -
我的列定义如下:
<table:Column width="200px">
<Label text="Plant Variation"/>
<table:template>
<Text text="{__textpvvalue__}">
<customData>
<core:CustomData key="strikethrough" value="{__rowstyle__}" writeToDom="true" />
</customData>
</Text>
</table:template>
</table:Column>
该属性实际上已正确写入DOM,但似乎不应该出现错误消息,因为我确实为自定义数据对象的“值”属性传递了一个字符串值。我还尝试将自定义数据对象的“值”属性硬编码为“测试”,以为这可能是与数据绑定有关的问题,但是得到了相同的结果。
由于data属性实际上已正确地写到DOM中,这比阻止问题更令人烦恼。我想知道这是否是我在XML视图中没有正确使用自定义数据的结果,因为我对openui5相当陌生。
谢谢,
马特
最佳答案
使用绑定格式化程序。将某行中的null
值格式设置为空字符串。
var customData = new sap.ui.core.CustomData({
key: 'strikethrough',
writeToDom: true
});
customData.bindProperty('value', {
path: '__rowstyle__',
formatter: function (value) {
if (!value) {
value = '';
}
return value;
}
});
或查看格式化程序。请参见Step 23: Custom Formatters。
sap.ui.define([], function () {
return {
customDataFormatter: function (value) {
if (!value) {
value = '';
}
return value;
}
};
});