JQuery Flexigrid assistance



您好,我想了解一下我可能做错了什么

我正在使用flexgrid(Paul Marinas),我在下面不断收到这个错误,flexgrids不显示记录

(通过firebug)
"row.cell未定义[Break On This Error]if(typeof row.cell[idx]!="undefined")[flexigrid.js line 356]"
下面是我的类的json响应:

{"page":1,"rows":[{"approved":false,"companyname":"y","dateadded":1331606797706,"filename":"x111.txt","isdone":false、"status":"0"},{"approved":false

这是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插件的教程和论坛,但我仍然不能完全让它发挥作用
如有任何帮助澄清此错误,我们将不胜感激

谢谢

您的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

最新更新