gpt4 book ai didi

extjs - DisplayField - 如何格式化日期?

转载 作者:行者123 更新时间:2023-12-04 22:51:40 24 4
gpt4 key购买 nike

我需要显示数据的只读 View 。我选择了 DisplayField 组件来执行此操作。我的问题是我想要一个简单的方法来调用 BasicForm.setValues(values)并在其中一个显示字段中自动正确呈现日期字符串。我还没有找到任何可以为我做这件事的东西(例如渲染器函数),我将在调用 setValues(values) 之前手动格式化日期字符串。 .有没有一些巧妙的方法可以做到这一点?

谢谢!

最佳答案

好的,如果您使用的是直接表单加载,那么您需要监听表单的 BasicForm 'actioncomplete' 事件。当此事件触发时,处理程序将提供两个参数。第一个是 BasicForm,第二个参数是 Ext.form.Action 对象。我们专门寻找一个 Ext.form.Action.Load 对象。从这里我们可以访问操作的 result.data 对象,我们可以在此处理程序返回之前处理数据值并将值加载到表单中。

function fmtDate(sf, rec) {
if ( rec[sf] ) {
var dt = new Date(); dt.setTime(rec[sf] * 1000); return dt.format('l j F Y');
}
};

myForm.getForm().on({
actioncomplete: function(form, action) {
if (action.type === 'load') {
if (action.result.success) {
var data = action.result.data;
data.someFormattedDate = fmtDate('myDateTS', data);
} else {
//handle an error here
}
}
}
});

现在,您在表单中只需要一个名为“someFormattedDate”的显示字段,并且 Bob 是您的叔叔(澳大利亚俚语,这一切都很好)。您还可以通过为 myForm.getForm().load() 调用提供“成功:”函数来实现完全相同的目标。有关 Ext.form.Action.Load 的信息,请参阅 ExtJS 文档。
干杯,t00bs。

关于extjs - DisplayField - 如何格式化日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4378404/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com