Javascript 如何更改P13Item TimePicker/DatePicker上的显示格式?
当所选列类型为日期/时间时,我试图更改sap.m.P13nItem使用的DatePicker/TimePicker上的显示格式 我尝试从P13nFilterPanel更改聚合P13nItem以包含属性formatSettings,但没有成功 下面是我的XML视图代码示例Javascript 如何更改P13Item TimePicker/DatePicker上的显示格式?,javascript,formatting,sapui5,Javascript,Formatting,Sapui5,当所选列类型为日期/时间时,我试图更改sap.m.P13nItem使用的DatePicker/TimePicker上的显示格式 我尝试从P13nFilterPanel更改聚合P13nItem以包含属性formatSettings,但没有成功 下面是我的XML视图代码示例 <P13nFilterPanel id="filterPanel" visible="true" type="filter" containerQuery="true" items="{
<P13nFilterPanel id="filterPanel" visible="true" type="filter" containerQuery="true" items="{
path: 'SchedulingFilter>/ColumnCollectionFilter'
}" filterItems="{
path: 'SchedulingFilter>/FilterItems'
}">
<P13nItem columnKey="{SchedulingFilter>columnKey}" text="{SchedulingFilter>label}" type="{SchedulingFilter>type}" maxLength="{SchedulingFilter>maxLength}" formatSettings="{SchedulingFilter>formatSettings>" />
<filterItems>
<P13nFilterItem columnKey="{SchedulingFilter>keyField}" operation="{SchedulingFilter>operation}" value1="{SchedulingFilter>value1}" value2="{SchedulingFilter>value2}" exclude="{SchedulingFilter>exclude}" />
</filterItems>
</P13nFilterPanel>
控件的默认行为将时间/日期字段显示为:
编辑:我发现默认行为基于用户的区域设置。我不考虑用户的区域设置来更改应用程序其他部分的显示格式
例如,我想在这些字段上实现显示格式“yyyy/MM/dd”和“hh:MM:ss”。为了解决这个问题,我必须在SAPUI5的1.44.6版本上扩展p13ConditionPanel(这个负责时间/日期组件实例化)和P13nFilterPanel(它创建P13nConditionPanel)。我只需要向DatePicker和TimePicker构造函数添加必要的参数(如下所示) 我在pastebin上发布了自定义扩展组件代码:
稍后,我将在openui5 Github上打开一个增强请求。为了解决这个问题,我必须在SAPUI5的1.44.6版本上扩展P13ConditionPanel(这一个负责时间/日期组件实例化)和P13FilterPanel(它创建P13ConditionPanel)。我只需要向DatePicker和TimePicker构造函数添加必要的参数(如下所示) 我在pastebin上发布了自定义扩展组件代码:
稍后,我将在openui5 Github上打开一个增强请求。P13项上的
格式设置中有什么?请注意,如果将日期和时间合并到DateTimePicker中,过滤可能会更容易(如果您可以控制此项,我不确定我的格式设置是否具有以下属性:{pattern:'yyyy/MM/dd',UTC:false}。我对将日期和时间筛选器合并为一个筛选器不感兴趣。p13nitem上的格式设置中有什么?请注意,如果将日期和时间合并到一个日期时间选择器中,筛选可能会更容易(如果您能控制此项,我不确定我的格式设置是否具有以下属性:{模式:'yyyy/MM/dd',UTC:false}。我对将日期和时间过滤器合并到一个过滤器中不感兴趣。
$.each(columnsKeys, function (i, item) {
const columnData = {};
const columnDescriptionItem = columnDescription[item];
columnData.columnKey = item;
columnData.text = columnDescriptionItem.label;
columnData.type = columnDescriptionItem.type;
columnData.formatSettings = {
pattern: 'yyyy/MM/dd',
UTC: false
};
columnData.maxLength = columnDescriptionItem.maxLength;
columnData.visible = columnDescriptionItem.visible;
columnData.index = columnDescriptionItem.index;
columnData.isEditable = columnDescriptionItem.isEditable;
columnData.isFilter = columnDescriptionItem.isFilter;
columnData.isSorter = columnDescriptionItem.isSorter;
columnsData.push(columnData);
});
case "date":
oConditionGrid.oFormatter = sap.ui.core.format.DateFormat.getDateInstance();
params.displayFormat = DateFormatter.displayFormat();
oControl = new sap.m.DatePicker(params);
break;
case "time":
oConditionGrid.oFormatter = sap.ui.core.format.DateFormat.getTimeInstance();
params.displayFormat = TimeFormatter.getDisplayFormat();
oControl = new sap.m.TimePicker(params);