本帖最后由 Clark.Pan 于 2023-7-29 21:47 编辑
需求:
数据绑定时,如果日期是字符串格式,结果无法设置format。
思路:
通过数据绑定中的value方法,来设置相互转换。value本身有一个作用,就是在数据绑定时候,充当一个转换器,在数据源与真实显示的值之间做转换。
通过value方法,我们可以自由定义如何进行转换。
解决方案:
下面示例以表格绑定为例,在tablecolumn的value方法中调用我们转换的逻辑,
tableColumn1.value(function(item, value){
if (arguments.length > 1) {
var oaTest = new RegExp('^/OADate\\(([-+]?(\\d+(\\.\\d*)?|\\.\\d+)([eE][-+]?\\d+)?)\\)/\\s*$');
if (oaTest.test(value)) {
x = value.match(oaTest);
var formatter = new GC.Spread.Formatter.GeneralFormatter("yyyy-mm-dd")
item["date"] = formatter.format(format.parse(x[1]));
} else {
item["date"] = value;
}
} else {
return new Date(item.date);
}
})
这里需要一个判断arguments.length > 1,通过判断代表双向绑定数据的来和去。
当arguments.length > 1,里面的逻辑会在页面的数据同步给数据源时走的逻辑,反之则是数据同步给页面时走的逻辑。
完整demo见附件
|
|