更改jqGrid中显示和编辑的日期格式

时间:2013-03-13 20:00:52

标签: jqgrid

我定义了以下列模型 -

{
    name: 'from',
    index: 'from',
    formatter: 'date',
    formatoptions: {srcformat:'ISO8601Long', newformat:'d-M-y H:i'},
    editable: true,
    edittype: 'text',
    editoptions: {
        maxlengh: 16,
        dataInit: function(element) {
            $(element).datetimepicker({
                dateFormat: 'yy-mm-dd',
                timeFormat: 'hh:mm',
                separator: ' ',
                timezone: '000'
            });
        }
    }
}

当在网格中显示时,日期被正确格式化为“d-M-y H:i”。当我尝试编辑记录时,表单中填充了此格式的日期,但我希望它是'Y-m-d H:i'进行编辑。如果我使用datetimepicker进行更改,则值将更新为所需格式,但如果未编辑该值,则发布的值为“d-M-y H:i”格式。

如何在将日期格式写入表单字段之前更改?我可以访问jqGrid用于转换的格式化方法吗?在填充表单字段之前,我可以使用unformat选项进行转换吗?我尝试了各种组合但无济于事。

3 个答案:

答案 0 :(得分:1)

您可以创建自定义格式函数来修改该值,然后创建自定义格式化选项以传输该值。

formatter: customFormatFunctionName,

unformat: customUnformatFunctionName,

功能:

function customFormatFunctionName(cellval, opts, rowObject, action) { ...

function customUnformatFunctionName(cellval, opts, rowObject, action) { ...

答案 1 :(得分:1)

这是适合我的colModel。关键是删除我的" date:true"编辑规则和dateformat,我通常在常规datepicker列中使用。此外,使格式模型恰到好处始终是PITA。我将此设置为我的用户所喜欢的以及我的Oracle DB最适合的...这是试验和错误,并使用此页面作为参考: http://php.net/manual/en/datetime.formats.date.php

{
name:"WMBEMSG_BEGIN_DATE", 
align:"center", 
index:"WMBEMSG_BEGIN_DATE", 
datefmt: 'mm/dd/Y HH:MM', 
editable: true, 
edittype: "text", 
editoptions: { dataInit: function(el) { $(el).datetimepicker({
    controlType: 'select',
    dateFormat: "m/d/yy",
                        timeFormat: "HH:mm"
  } ) }
   }, 
label:"Begin Date", 
width:50, 
sortable: true
}

另外,请确保您的timepicker javascript包含在您的jquery和jquery UI加载之后。

答案 2 :(得分:0)

我认为您应该使用dateFormat: 'dd-M-yy'代替dateFormat: 'yy-mm-dd'timeFormat: 'HH:mm'代替timeFormat: 'hh:mm'。它对应于您使用的格式newformat:'d-M-y H:i'

请参阅the demo

enter image description here