2009-11-21 134 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

相關問題