javascript - jqGrid 错误 - "Element is not a table"

标签 javascript jquery jquery-ui jqgrid

这看起来很简单,但我从 jqGrid 代码中得到了这个神秘的错误,说“元素不是表格”。这是代码:

var grid_data = [ {id:"1",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"} , {id:"2",invdate:"2010-05-25",name:"test2",note:"note2",tax:"20.00",total:"320.00"}, {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",tax:"30.00",total:"430.00"}, {id:"4",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"}, {id:"5",invdate:"2007-10-05",name:"test2",note:"note2",tax:"20.00",total:"320.00"}, {id:"6",invdate:"2007-09-06",name:"test3",note:"note3",tax:"30.00",total:"430.00"}, {id:"7",invdate:"2007-10-04",name:"test",note:"note",tax:"10.00",total:"210.00"}, {id:"8",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"21.00",total:"320.00"}, {id:"9",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"11",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"12",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"13",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"14",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"15",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"16",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"17",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"18",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"19",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"21",invdate:"2007-10-01",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"22",invdate:"2007-10-02",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"23",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"24",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"25",invdate:"2007-10-05",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"26",invdate:"2007-09-06",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}, {id:"27",invdate:"2007-10-04",name:"test",note:"note",amount:"200.00",tax:"10.00",total:"210.00"}, {id:"28",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"20.00",total:"320.00"}, {id:"29",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"}  ]; 
var default_grid = {
            datatype: "local", 
            height: 80, 
            rowNum: 10, 
            rowList: [10,20,30], 
            multiselect: true, 
            rowList:[10,20,30], 
            sortname: 'id', viewrecords: true, sortorder: "asc",
            footerrow: true,
            loadui: "block"
};
var grid_detail = $.extend({ 
    data: grid_data, 
    colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'], 
    colModel:[ 
        {name:'id',index:'id', width:60, sorttype:"int"}, {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
        {name:'name',index:'name', width:100}, {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number"}, 
        {name:'tax',index:'tax', width:80, align:"right",sorttype:"float"}, {name:'total',index:'total', width:80,align:"right",sorttype:"float"},
        {name:'note',index:'note', width:150, sortable:false}
    ],
    caption: "Test Grid" ,
    pager: '#plist2'
},default_grid);

$('#abutton').click(function(e){
    e.preventDefault();
    $('<div></div>').dialog().jqGrid(grid_detail);
});

最佳答案

这根本不是一条神秘的消息。该元素不是表格,这意味着您尝试转换为网格的元素不是表格。这很有意义:您使用的是 div:

$('<div></div>')

因此,与其在 javascript 中完成所有操作,不如制作以下 HTML:

<div id="myDialog"><table id="myGrid"></table></div>

然后制作对话框和网格:

$('#myDialog').dialog();
$('#myGrid').jqGrid ...

编辑:完全动态地执行此操作:

$('<div><table></table></div>').dialog().find('table:first').jqGrid(...);

关于javascript - jqGrid 错误 - "Element is not a table",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6143299/

相关文章:

javascript - 单击导航栏中的列表多次调用函数

jQuery UI Datepicker 将备用字段填充并格式化为 MySQL 日期

javascript - 自动填充使用 jquery 和 RoR 错误?

javascript - jQuery onclick 创建并附加带有属性和子元素的元素

javascript - 在 onbeforeunload 中使用 Ajax 自动保存字段数据

javascript - 加载内容后如何获取div的高度?

javascript - 如何向 HTML5 AJAX FormData 对象添加更多数据

javascript - 使用 Javascript/jQuery 遍历嵌套列表并存储在数组中

jquery - 如何使用 jquery ui 创建自定义控件?

javascript - 由于显示 :flex;,SmartMenus 在 Chrome 上无法正常工作