2009-11-21 130 views
5

如何在jqGrid单元格中设置空白而不是NaN?使用格式化程序?有没有例子?jqGrid单元格中的NaN时为空

+2

http://catb.org/~esr/faqs/smart-questions.html#beprecise – 2009-11-21 15:33:30

+0

+1以上。 raouf - 你能提供更多关于你的问题的信息吗?一些代码示例可能也会有帮助。 – 2009-11-21 18:48:28

+0

谢谢Justin!用格式化程序在jqgrid上显示数据库数字数据:colmodel中的'currency'对于非DBNull值工作正常。但是当值是DBNull时,单词'NaN'出现在jqgrid单元格中。问题是:如何避免'NaN'并且放置一个空白(空格)。 – raouf 2009-11-22 14:51:14

回答

0

在服务器上,在将数据作为XML/JSON /其他数据返回之前,尝试将DBNull值设置为等于空白字符串。

或者,如果它是可以接受的,0显示NULL值,你可以修改你的SQL沿着这些线路:

SELECT IsNull(my_amount, 0) 
+1

我认为解决方案是在colmodel的格式化选项中。有两种方式:预定义和自定义格式化程序。在我的情况下,我想使用预定义的'货币'格式化程序,但有可能在值为空时返回空白而不是'NaN'。似乎没有办法避免重写我的custum货币格式化函数。再次感谢你Justin。 – raouf 2009-11-22 17:35:42

+0

没问题,祝你好运! – 2009-11-22 18:13:34

0

我不会改写自定义格式 - 但覆盖它(或作出新一)!这样,当新版本的jQgrid出来时,你不会覆盖你的自定义包装。

例如,我的用户不希望看到的值,如果是0,所以我这样做:

$.fn.fmatter.currency = function (cellval, opts) { 
    if (cellval == 0) { 
     return ''; 
    } 
    var op = $.extend({},opts.currency); 
    if(!isUndefined(opts.colModel.formatoptions)) { 
     op = $.extend({},op,opts.colModel.formatoptions); 
    } 
    if(isEmpty(cellval)) { 
     return op.defaultValue; 
    } 
    return $.fmatter.util.NumberFormat(cellval,op); 
}; 

但我也可以把它叫做:

$.fn.fmatter.currencyNoZero 

在你case,我会这样做:

$.fn.fmatter.currency = function (cellval, opts) { 
    if (cellval == null) { 
     return ''; 
    } 
    var op = $.extend({},opts.currency); 
    if(!isUndefined(opts.colModel.formatoptions)) { 
     op = $.extend({},op,opts.colModel.formatoptions); 
    } 
    if(isEmpty(cellval)) { 
     return op.defaultValue; 
    } 
    return $.fmatter.util.NumberFormat(cellval,op); 
}; 
6

这是真的老了,但jqGrid文档没有一个简单的答案,这个问题拉起fi当我在寻找相同的答案时,我首先在Google结果中找到答案。

我能够使用预定义的格式选项使用该代码的整数时,显示一个空白小区的而不是0:

{ name: 'Quantity', formatter: 'integer', formatoptions: { defaultValue: ''} } 

defaultValue正好被设置为空白。

+1

感谢上帝,有人要回答“真的”老问题:)。 3年后你甚至可以挽救我的一天。 – elrado 2015-08-11 13:00:28

+0

向感谢组添加一个。 :) – 2015-10-13 20:58:23

相关问题