2013-11-22 64 views
2

我想用'NULL'替換網格中的空白值。我讀過數據中的空值在jqGrid中默認顯示爲空單元格。根據特殊要求,我需要將這些空白值格式化爲「NULL」。jqGrid:無自定義格式化器

我發現這個相關的post正在嘗試做相反的事情 - 用空白值替換'NULL'。如果單元格值未定義或isNull,我使用該代碼將cellvalue設置爲'NULL'而不是''。但是當我運行代碼時,網格從不加載。我只是得到「正在加載...」消息框,它從不加載任何數據。

下面是我使用的代碼:

var nullFormatter = function(cellvalue, options, rowObject) { 
    if(cellvalue === undefined || isNull(cellvalue)) { 
     cellvalue = 'NULL'; 
    } 
    return cellvalue; 
} 


$("#grid").jqGrid({ 
    .... 
    colModel: [{ 
     label: 'Name', 
     name:'name', 
     index:'name', 
     formatter:nullFormatter 
    }, { 
     label: 'Next Column', 
     name:'nextCol', 
     index:'nextCol', 
     formatter: nullFormatter 
    }, ...], 
    .... 
} 

在此先感謝。

+0

你能包括用於填充網格一些**測試數據**?數據中'null'和空字符串''「'有區別嗎?您使用了哪種'datatype'(''local」,'「json」'等)? – Oleg

+0

嗨Oleg,我的測試數據字段設置爲空,但在PHPmyadmin顯示空白。我正在使用json數據類型。 – klm10

回答

0

當jQGrid收到其中一個單元格的null值時,它實際上將HTML實體: 放置在單元格中。

所以,這裏是你更新的自定義格式化功能應該是什麼樣子:

var nullFormatter = function(cellvalue, options, rowObject) { 
    // if cellvalue is   OR a single space 
    if(cellvalue == " " || cellvalue == " ") { 
     cellvalue = 'NULL'; 
    } 
    return cellvalue; 
} 
+0

我很感謝您對我的問題的快速回復!感謝您對jqGrid的洞察。我不知道網格將HTML代碼 放置在NULL的單元格中。我嘗試了你的代碼建議,它加載了數據,但沒有在網格中將任何空白值格式化爲'NULL'。 – klm10

+0

@ klm10我最近更新了我的答案 - 請在'if'語句中檢查' '和''「'(單個空格)。這有幫助嗎? – FastTrack

+0

我複製了您的更新的代碼段,它仍然不會格式化空白以顯示爲'NULL'。我欣賞你的建議。 – klm10

0

你colud嘗試添加一個條件你如果來檢查值等於「空」,就好像它是一個像這樣的字符串:

var nullFormatter = function(cellvalue, options, rowObject) { 
    if(cellvalue === undefined || isNull(cellvalue) || cellvalue == 'null') { 
     cellvalue = 'NULL'; 
    } 
    return cellvalue; 
} 
0

請使用此代碼。它的工作......看起來「isNull(cellvalue)」函數不起作用。而不是這個 var nullFormatter = function(cellvalue,options,rowObject){}, 嘗試函數nullFormatter(cellvalue,options,rowObject){

function nullFormatter(cellvalue, options, rowObject) { 
 
     if (cellvalue === undefined || cellvalue === 'null' || cellvalue === 'NULL' || cellvalue === null) { 
 
      cellvalue = '-'; 
 
     } 
 

 
     return cellvalue; 
 
    } 
 
    
 
    
 
    colModel:[ { name: 'taskStatus', index: 'taskStatus', template: gridTextareaTemplate, formatter: nullFormatter }]