TypeError:在jqGrid中未定义t.p.

时间:2013-05-23 14:31:55

标签: jquery jqgrid

这是我的网格定义

       $("#requestSearchResultsGrid").jqGrid({
                        datatype : 'jsonstring',
                        height : 210,
                        colModel : [
                                {
                                    label : '<input type="checkbox" id="reqChkIdResult" name="selectedCheck" value="" onclick="checkAllRequestSearchResults(event)"/>',
                                    name : '',
                                    index : '',
                                    align : 'center',
                                    editable : true,
                                    sortable : false,
                                    resizable : false,
                                    edittype : 'checkbox',
                                    editoptions : {
                                        value : "true:false"
                                    },
                                    formatter : function cboxFormatter(cellvalue,options,rowObject) {
                                        return '<input type="checkbox" name="selectedCheck"'
                                                + (cellvalue ? ' checked="checked"' : '')
                                                + 'onclick="checkRequestSearchResults()" id="'
                                                + options.rowId
                                                + '_veh" name="exp"/>';
                                    },
                                    formatoptions : {
                                        disabled : false
                                    },
                                    width : 20
                                },

                                {
                                    label : 'Dept',
                                    name : 'deptId',
                                    index : 'deptId',
                                    sortable : false,
                                    align : 'right',
                                    width : 40
                                },
                                {
                                    label : 'Class',
                                    name : 'classId',
                                    index : 'classId',
                                    sortable : false,
                                    align : 'right',
                                    width : 40
                                },
                                {
                                    label : 'SKU',
                                    name : 'skuNum',
                                    index : 'skuNum',
                                    sortable : true,
                                    width : 90,
                                    align : 'right'
                                },
                                {
                                    label : 'SKU Description',
                                    name : 'skuDesc',
                                    index : 'skuDesc',
                                    sortable : true,
                                    width : 120,
                                    align : 'left'
                                },
                                {
                                    label : 'ID',
                                    name : 'reqId',
                                    index : 'reqId',
                                    sortable : true,
                                    width : 40,
                                    align : 'right'
                                },
                                {
                                    label : 'Request Description',
                                    name : 'reqDesc',
                                    index : 'reqDesc',
                                    width : 150,
                                    align : 'left'
                                },
                                {
                                    label : 'Event Type',
                                    name : 'eventTypeName',
                                    index : 'eventTypeName',
                                    sortable : false,
                                    width : 75,
                                    align : 'left'
                                },
                                {
                                    label : 'Due Date',
                                    name : 'dueDate',
                                    index : 'dueDate',
                                    width : 70,
                                    align : 'right'
                                },
                                {
                                    label : 'Workflow Status',
                                    name : 'workflowStatusDesc',
                                    index : 'workflowStatusDesc',
                                    sortable : false,
                                    align : 'left',
                                    width : 120
                                },
                                {
                                    label : 'Selection Status',
                                    name : 'selectionStatusDesc',
                                    index : 'selectionStatusDesc',
                                    sortable : false,
                                    align : 'left',
                                    width : 120
                                },
                                {
                                    label : 'Validation Status',
                                    name : 'validationStatusDesc',
                                    index : 'validationStatusDesc',
                                    sortable : false,
                                    align : 'left',
                                    width : 120
                                },
                                {
                                    label : 'Event Name',
                                    name : 'eventName',
                                    index : 'eventName',
                                    width : 100,
                                    align : 'left'
                                },
                                {
                                    label : 'Phase',
                                    name : 'phase',
                                    index : 'phase',
                                    width : 80,
                                    align : 'left'
                                },
                                {
                                    label : 'Run Start',
                                    name : 'runStart',
                                    index : 'runStart',
                                    sortable : false,
                                    width : 70,
                                    align : 'right'
                                },
                                {
                                    label : 'Run End',
                                    name : 'runEnd',
                                    index : 'runEnd',
                                    sortable : false,
                                    width : 70,
                                    align : 'right'
                                },
                                {
                                    label : 'Supplier',
                                    name : 'supplierName',
                                    index : 'supplierName',
                                    sortable : false,
                                    width : 60,
                                    align : 'right'
                                },
                                {
                                    label : 'Owner',
                                    name : 'assignedUserId',
                                    index : 'assignedUserId',
                                    sortable : false,
                                    width : 100,
                                    align : 'left'
                                },
                                {
                                    label : 'Private',
                                    name : 'pvtInd',
                                    index : 'pvtInd',
                                    sortable : false,
                                    align : 'left',
                                    width : 50
                                },
                                {
                                    label : 'Last Modified',
                                    name : 'lastModified',
                                    index : 'lastModified',
                                    sortable : false,
                                    align : 'right',
                                    width : 110
                                } ],
                        jsonReader : {
                            root : "requestDetails",
                            repeatitems : false
                        },
                        onSelectRow : function(rowId) {
                            selectedRowId = rowId;
                        },

                        afterInsertRow : function(rowid,rowdata) {
                            var currentDate = new Date();
                            currDate = currentDate.getDate();
                            currYear = currentDate.getFullYear();
                            currMonth = currentDate.getMonth();

                            var dat = new Date(rowdata.dueDate);
                            pdate = dat.getDate();
                            pmonth = dat.getMonth();
                            pyear = dat.getYear();

                            if ((pdate > currDate) && (pdate <= currDate + 3)) {
                                $(this).jqGrid('setRowData',rowid,false,{color : 'red'});
                            }
                        },
                        gridComplete : function(){
                            $("#requestSearchResultsGrid tr").jscontext({html : requestContextMenu});
                        },
                        rowNum : 100,
                        sortorder : 'asc',
                        sortname : 'requestType',
                        viewrecords : true,
                        loadonce : true,
                        autowidth : true,
                        shrinkToFit : false,
                        gridview : true,
                        scrollOffset : 0,
                        id : 'requestId',
                        ondblClickRow : editRequest
                    }).jqGrid('setGridWidth',$('#appBody').width() - 10);

我正在通过使用下面的代码片段从服务向网格添加数据,我是一个增量变量。基于某些条件,我只会将数据添加到网格中,所以我使用的是addRowData。

$(“#requestSearchResultsGrid”)。jqGrid('addRowData',i + 1,gridData);

问题是上述行正在执行抛出运行时异常

TypeError:在ni = t.p.rownumbers === true时,t.p未定义? 1:0;

1 个答案:

答案 0 :(得分:1)

您没有发布显示使用的代码addRowData。我想您尝试在创建网格之前调用addRowData 。我想这是你的主要问题。

此外,我建议您重新设计代码。你使用没有datatype : 'jsonstring'的{​​{1}}没有任何意义。在使用初始datastr数据填充网格后,datastr将更改为datatype : 'jsonstring'。之后{@ 1}}将不会被使用。同样地,我不理解"local"的含义。如果使用jsonReader使用数据填充网格,则直接使用行数据指定对象(请参阅代码示例中的afterInsertRow)。 addRowData的代码似乎只是添加gridData列。您可以在调用afterInsertRow之前直接添加/更改color color的{​​{1}}属性。

另一个问题是gridData的使用,我完全不推荐(参见the answer)。当前实现调用网格的每一行(addRowData元素)gridComplete。添加第一行后,您可以为该行调用jscontext。然后添加下一行并为所有现有行调用<tr>。因此,您第二次为之前的加法行调用jscontext。等等。最后,您可以为同一行多个分支调用jscontext