2016-05-18 42 views
1

我有一個jqGrid的,其中用於colModel格式化功能必須被定義爲一個字符串的jqGrid Unformatter預定義的格式

{name:'FileSize', index:'FileSize', width:90, editable: true, 
              formatter: 'fileSizeFormatter'} 

我不能使用以下命令,其中格式化功能不是字符串,因爲我建C#中服務器端的colmodels。如果我可以使用非字符串格式化定義unformatter將是一個解決方案,如圖 Here

{name:'FileSize', index:'FileSize', width:90, editable: true, 
               formatter: fileSizeFormatter} 

這裏是fileSizeFormatter我需要的,因爲我的格式化程序作爲一個字符串傳遞給使用fn.fmatter和代碼假定它是一個預先定義的LILE「選擇」,「貨幣」的一個...等

$.fn.fmatter.fileSizeFormatter = function (cellval, options) { 
    var fileUnit = "B"; 
    if (cellval) { 
     var fileUnit; 
     var iKBFileSize; 
     if (cellval < 1024) { 
      iKBFileSize = cellval; 
     } else { 
      iKBFileSize = cellval/1024; 
      fileUnit = "KB"; 
     } 

     var result = iKBFileSize.toFixed(1) + fileUnit; 
     return result; 
    } 

    return cellval + fileUnit; 
}; 

Sample

所以,問題是我怎麼可以定義爲unformatter被作爲字符串傳遞格式化。當我做grid.getrowdata或編輯單元格時,我的unformatter沒有被使用。它使用文件單元獲取數據。

$.unformat.fileSizeFormatter = function (cellvalue, options, cell) { 
    return $('input', cellval).is(":checked") ? true : false; 
}; 

回答

1

你應該在一個小的另一種方式定義unformatter:

$.fn.fmatter.fileSizeFormatter.unformat = function (cellValue, options, elem) { 
    return $(elem).find('input').is(":checked") ? true : false; 
} 

你應該定義格式($.fn.fmatter.fileSizeFormatter)後確定原因unformatter。

+0

非常感謝你的魅力! –

+0

@AmeteBlessed:不客氣! – Oleg