2012-01-19 104 views
0

jqgrid允許將類型信息指定爲colModel的一部分,例如,獲取按照colModel規範鍵入的jqgrid行數據

editrules:{required:true, number: true}, 

雖然這隻會影響驗證這將是很好使用該信息獲取所有行數據 。

jqGrid('getRowData') 

返回所有數據串

是它在某種程度上可以將結果轉換爲鍵入信息(與數列:真正應該被轉換爲整數,以對付它作爲一個整數Web服務器端,如果JSON用於在提交網格數據時進行編碼/解碼)。

回答

0

問題是,jqGrid有沒有有關數據類型的信息。有格式化程序,排序,編輯和搜索選項來構建編輯或搜索控件,驗證選項等,但沒有有關數據類型的信息

此外,jqGrid在許多情況下接收輸入數據作爲字符串。即使是JavaScript類型number也不是真正想要的,因爲JavaScript沒有integer數據類型。

getRowData方法使用unformatter讀取單元格的字符串內容。在某些情況下,例如,如果您使用datatype: 'local'data參數填補了網格,輸入數據保存在內部data_index參數,你可以使用參數,以獲得鍵入關於小區信息包含的內容。

例如,你如果定義持有的日期列定義可以是以下

{ name: 'invdate', index: 'invdate', width: 80, align: 'center', 
    sorttype: 'date', 
    formatter: 'date', formatoptions: { newformat: 'd-M-Y' }, editable: true, 
    datefmt: 'd-M-Y', 
    editoptions: { 
     dataInit: function (elem) { 
      setTimeout(function() { 
       $(elem).datepicker({ 
        dateFormat: 'dd-M-yy', 
        autoSize: true, 
        changeYear: true, 
        changeMonth: true, 
        showButtonPanel: true, 
        showWeek: true 
       }); 
      }, 100); 
     }}, 
    editrules: {required: true, date: true}, 
    searchoptions: { 
     sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'], 
     dataInit: function (elem) { 
      setTimeout(function() { 
       $(elem).datepicker({ 
        dateFormat: 'dd-M-yy', 
        autoSize: true, 
        changeYear: true, 
        changeMonth: true, 
        showWeek: true, 
        showButtonPanel: true 
       }); 
      }, 100); 
     }}} 

你在一個多少地方必須指定「日期」類型看。

我建議您使用列模板(有關更多信息,請參閱here)。在我的項目,我實現了我定義的客戶(在一個共同的JavaScript文件),如dateTemplate一些模板,定義在網格中列狀

{name: 'invdate', index: 'invdate', width: 80, template: my.dateTemplate} 

其中my.dateTemplate在簡化形式定義如下

var my = { 
    dateTemplate: { 
     align: 'center', 
     sorttype: 'date', 
     formatter: 'date', formatoptions: { newformat: 'd-M-Y' }, editable: true, 
     datefmt: 'd-M-Y', 
     editoptions: { 
      dataInit: function (elem) { 
       setTimeout(function() { 
        $(elem).datepicker({ 
         dateFormat: 'dd-M-yy', 
         autoSize: true, 
         changeYear: true, 
         changeMonth: true, 
         showButtonPanel: true, 
         showWeek: true 
        }); 
       }, 100); 
      }}, 
     editrules: {required: true, date: true}, 
     searchoptions: { 
      sopt: ['eq', 'ne', 'lt', 'le', 'gt', 'ge'], 
      dataInit: function (elem) { 
       setTimeout(function() { 
        $(elem).datepicker({ 
         dateFormat: 'dd-M-yy', 
         autoSize: true, 
         changeYear: true, 
         changeMonth: true, 
         showWeek: true, 
         showButtonPanel: true 
        }); 
       }, 100); 
      }}} 
}; 

模板作爲數據類型發揮密切作用。如果您需要,您可以根據getRowDatatemplate參數colModel編寫自己的安全方法,以獲取所需的信息。