【问题标题】:Have Custom formatter for date field in JQGrid为 JQGrid 中的日期字段提供自定义格式化程序
【发布时间】:2014-09-05 10:31:14
【问题描述】:

我想在网格上将日期显示为 N/A,以防它在数据库中为 NULL,或者以正常日期格式显示。 目前我有这个代码:

name: 'Handshake_Actual_Date', index: 'Handshake_Actual_Date', search: false, 
editable:true, align: "left", width: 75, formatter: "date", formatoptions: 
{newformat:"m/d/Y" },
editoptions: {
size: 20,
dataInit: function (el) {
$(el).datepicker({ dateFormat: 'mm/d/yy' });
},
defaultValue: function () {
var currentTime = new Date();
var month = parseInt(currentTime.getMonth() + 1);
month = month <= 9 ? "0" + month : month;
var day = currentTime.getDate();
day = day <= 9 ? "0" + day : day;
var year = currentTime.getFullYear();
return day + "/" + month + "/" + year;
}
}

它工作得很好,但我想要一个像下面这样的自定义格式化程序:

function myFormatter (cellvalue, options, rowObject) {
if(cellvalue==null)
{
return "N/A";
}
else
{
return $.fn.fmatter.date(cellvalue, options, rowObject);
}
}

但它不起作用..! 例如,您可以在此处查看代码:http://jsfiddle.net/35Larwva/

【问题讨论】:

    标签: jquery jqgrid date-formatting


    【解决方案1】:

    尝试替换

    $.fn.fmatter.date(cellvalue, options, rowObject)
    

    $.fn.fmatter.call(this, "date", cellvalue, options, rowObject);
    

    此外,我建议您使用更正确的 JavaScript 代码:cellvalue==NULL 应替换为 cellvalue === null,您应在语句末尾使用 ;(例如在 return "N/A" 之后),最好始终使用 @ 987654330@ 用于 ifelse 语句。

    更新:我修复了您的 jqfiddle 演示,使其现在可以工作:http://jsfiddle.net/OlegKi/35Larwva/2/

    【讨论】:

    • 谢谢!我试着把它改成你说的,但我的网格没有加载,它只是在一个盒子里显示加载。事实上,即使写只是 return fn.fmatter.call(this, "date", cellvalue, options, rowObject);在没有 if else 的自定义格式化程序中,不起作用}
    • @user3814961:可能有很多其他原因。加载框主要意味着您使用的 JavaScript 代码中存在错误。例如NULL 表示名称为NULL 的未定义全局变量,null 表示您知道的空值。您应该在调试器中启动代码以查看确切的错误以及在哪一行代码中(例如按 F12 启动开发者工具,然后启动 JavaScript 调试器)。例如,您可以在 jqFiddle 中发布您的代码(获取 [演示](例如,jsfiddle.net/OlegKi/35k71pmw/2 并修改它以包含您的代码))并发布链接
    • @Oleg 你能看看这个问题吗。谢谢[link]stackoverflow.com/questions/25694281/…
    • @NewHistoricForm:抱歉,我不完全理解你的问题。您写道,您想在复选框附近放置“两者的日期”或今天。网格的哪一列(或输入数据的属性)包含“两者的日期”?你写了关于新的“editype”:“复选标记”。您可以添加 edittype:'checkbox' 类型的新列,并在编辑表单中添加带有一些日期信息的复选框。您可以使用复选框上的“更改”或“单击”事件来处理它的选中/取消选中并修改日期。我还没有完全理解你的问题。
    • @Oleg 是的。那可以工作。如果我添加edittype:'checkbox' 列,则编辑表单中只会显示一个复选框。我需要当前日期在选中时显示在复选框旁边,并且在提交或取消选中后将该日期添加到单元格中,然后将“NULL”发送回以将单元格留空。请您在页面上放置示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-16
    • 2012-06-17
    • 2013-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多