2012-03-14 61 views
1

美好的一天,我想獲得一些輸入,我可能會在這裏做錯的地方。

我使用flexigrid(由保羅碼頭)和我不斷收到下面這個錯誤和FlexGrid中不顯示記錄

(通過螢火蟲)
「row.cell是不確定的[打破這個錯誤]如果(typeof row.cell [idx]!=「undefined」)[flexigrid.js line 356]「。下面
是從我的類JSON響應:

{ 「頁面」:1, 「行」:[{ 「批准」:假的, 「公司名稱」: 「Y」, 「dateadded」:1331606797706, 「文件名」: 「x111.txt」, 「isdone」:假的, 「狀態」: 「0」},{ 「認可」:假的, 「公司名稱」: 「X」, 「dateadded」:1331605479681, 「文件名」: 「z222.txt」, 「isdone」:假 「狀態」: 「0」}], 「總」:2}

這裏是flexigrid實例:

JQuery Flexigrid的幫助

   $('#fgrid').flexigrid({ 
        url: '/doValid/isvalid', 
        method: 'GET', 
        dataType: 'json', 
        colModel : [ 

         {display : 'Company Name', name : 'companyname', width : 200, sortable : true, align: 'left'}, 
         {display : 'File Name', name : 'filename', width : 150, sortable : true, align: 'left'}, 
         {display : 'Date Uploaded', name : 'dateadded', width : 150, sortable : true, align: 'left'}, 
         {display : 'approved', name : 'approved', width : 50, sortable : true, align: 'left'}, 
         {display : 'done', name : 'isdone', width : 50, sortable : true, align: 'left'}, 
         {display : 'Status', name : 'status', width : 300, sortable : true, align: 'left'} 
        ], 
        preProcess: formatFlex, 
        sortname : 'companyname', 
        sortorder: 'asc', 
        useRp: true, 
        rp: 40, 
        usepager: true, 
        showTableToggleBtn : false, 
        singleSelect: true 

       }); 



這裏是formatFlex功能:

  function formatFlex(data) { 
       var dlist = Array(); 
       $.each(data.rows, function(i,row){ 
        var compname =""; 
        var flname=""; 
        var dadded=""; 
        var bapp=false; 
        var bisdone=false; 
        var sstat=""; 

        $.each(row,function(i,v){ 
         if(i == "companyname"){ 
          compname = v; 
         } else if (i == "filename") { 
          flname = v; 
         } else if (i == "dateadded") { 
          dadded = v; 
         } else if (i == "approved") { 
          bapp = v; 
         } else if (i == "isdone") { 
          bisdone = v; 
         } else if (i == "status") { 
          sstat = v; 
         } 
        }); 

        dlist.push({"companyname": compname, "filename": flname, "dateadded": dadded, "approved": bapp, "isdone": bisdone, "status": sstat}); 
        //even done this format 
        //dlist.push({companyname: compname, filename: flname, dateadded: dadded, approved: bapp, isdone: bisdone, status: sstat}); 

       }); 
       //alert("page : " + data.page + ", total: " + data.total + ", rows: " + dlist); 
       return { 
        page: data.page, 
        total: data.total, 
        rows: dlist 
       }; 
      } 



已經按照教程和論壇這個jQuery插件,但我仍然不能完全得到它的工作。
任何幫助澄清這個錯誤是高度讚賞。

謝謝。

回答

0

你的JSON格式是錯誤的,flexigrid的預期JSON格式是:

total: (no of rec), 
page : (page no), 
rows : [{cell: [ (col1 value) , (col2 value) ,.. ] }, 
     {cell: [ (col1 value) , (col2 value) ,.. ] }] 

檢查以下鏈接

https://gist.github.com/390274

+0

感謝響應。來自該類的早期響應被傳遞給flexigrid的preProcess參數。格式化您提到的所需格式的響應。不過,我再次嘗試使用你提到的但仍然沒有顯示數據。再次感謝。 – 2012-03-14 04:43:27

+0

嘗試使用https://gist.github.com/390274 – Nemoy 2012-03-14 04:50:32

+0

{「page」:1,「total」:2,「rows」:[{「approved」:false,「companyname 「:」 Y 「 」dateadded「:1331606797706, 」文件名「: 」x111.txt「, 」isdone「:假 」狀態「: 」0「},{ 」批准「:假 」公司名稱「:」 × 「,」dateadded「:1331605479681,」filename「:」z222.txt「,」isdone「:false,」status「:」0「}]}

設法獲得json格式,但flexigrid仍然與同樣的錯誤。 – 2012-03-14 07:34:16