将 <rich:calendar> 的月份名称格式化为 MMM 而不是 MMMM
Format month name of <rich:calendar> as MMM instead of MMMM
如何将 <rich:calender>
显示的月份从 "April" 更改为 3 个字符 "Apr"?
这是不支持的,如果你想改变它,你需要覆盖创建元素的 JavaScript 方法,像这样:
var calendar = #{rich:component('calendar')};
var fn = calendar.calendarContext.currentMonthControl;
calendar.calendarContext.currentMonthControl = function(context) {
var newDate = RichFaces.calendarUtils.formatDate(context.calendar.getCurrentDate(), "MMM, yyyy", context.monthLabels, context.monthLabelsShort);
var markup = fn(context);
markup.childs[0].value = newDate;
return markup;
}
当然,您必须确保在重新呈现日历时也重新呈现此代码。
大部分日历代码是在客户端创建的。 (注意:这是内部的东西,你不需要知道它是如何工作的)。
calendar.calendarContext.currentMonthControl
负责创建标签,它return是这个对象:
{
"tag":"div",
"attrs":{
/* event listeners, unimportant */
},
"childs":
[{"value":"April, 2016"}]
}
您所做的是用修改此对象的新方法替换原始方法。 RichFaces.calendarUtils.formatDate
在原始函数中以模式 "MMMM, yyyy" 调用,因此我们使用不同的模式调用它,然后调用原始函数,替换文本,并 return 修改后的对象。
如何将 <rich:calender>
显示的月份从 "April" 更改为 3 个字符 "Apr"?
这是不支持的,如果你想改变它,你需要覆盖创建元素的 JavaScript 方法,像这样:
var calendar = #{rich:component('calendar')};
var fn = calendar.calendarContext.currentMonthControl;
calendar.calendarContext.currentMonthControl = function(context) {
var newDate = RichFaces.calendarUtils.formatDate(context.calendar.getCurrentDate(), "MMM, yyyy", context.monthLabels, context.monthLabelsShort);
var markup = fn(context);
markup.childs[0].value = newDate;
return markup;
}
当然,您必须确保在重新呈现日历时也重新呈现此代码。
大部分日历代码是在客户端创建的。 (注意:这是内部的东西,你不需要知道它是如何工作的)。
calendar.calendarContext.currentMonthControl
负责创建标签,它return是这个对象:
{
"tag":"div",
"attrs":{
/* event listeners, unimportant */
},
"childs":
[{"value":"April, 2016"}]
}
您所做的是用修改此对象的新方法替换原始方法。 RichFaces.calendarUtils.formatDate
在原始函数中以模式 "MMMM, yyyy" 调用,因此我们使用不同的模式调用它,然后调用原始函数,替换文本,并 return 修改后的对象。