我打开页面属性并填写一些字段
按下取消按钮后,重新打开属性对话框,清除所有字段,但日期时间字段没有。
清除日期时间字段的方法是什么?
答案 0 :(得分:0)
我是debuggin,发现\ibs\cq\ui\widgets\source\ext\override\widgets\form\Field.js
中isApplyDefault方法的奇怪行为。它是比较创建和模拟日期,如果它们等于返回true,否则为false。
我只是在DateTime.js中使用ovveride方法processRecord来删除调用isApplyDefault:
processRecord: function(record, path) {
if (this.fireEvent('beforeloadcontent', this, record, path) !== false) {
var v = record.get(this.getName());
if (v == undefined && this.defaultValue != null) {
this.setValue(this.defaultValue);
}
else {
this.setValue(v);
}
this.fireEvent('loadcontent', this, record, path);
}
}
Field.js中的是:
processRecord: function(record, path) {
if (this.fireEvent('beforeloadcontent', this, record, path) !== false) {
var v = record.get(this.getName());
if (v == undefined && this.defaultValue != null) {
if (this.isApplyDefault(record, path)) {
this.setValue(this.defaultValue);
}
}
else {
this.setValue(v);
}
this.fireEvent('loadcontent', this, record, path);
}
}