我正在使用jqGrid,目前我遇到了一些问题,主要是因为它的配置。如何将我的JSON字符串转换为JavaScript对象文字
目前,我想这样做:
var tableConfigJson = $treeTable.getMappedJson();
jQuery(function() {
jQuery("#grid").jqGrid(tableConfigJson);
});
$ treetable中是我的,我有速度映射检索我的服务器端对象。
现在我从服务器上得到的JSON很好,但是当我将它传递给jqGrid来为它设置配置时,它不起作用。如果我在javascript中设置了配置,但是我创建的配置为javascript对象,但它工作正常,但是如果我只是通过JSON作为配置,它不起作用。现在我的问题是,有没有简单的方法来解决这个问题?或者我需要再次使用JSON映射配置。
如果我不过这样做:
jQuery(function() {
jQuery("#grid").jqGrid({
treeGrid: true,
treeGridModel: 'adjacecncy',
ExpandColumn: 'name',
datatype: "local",
mtype: 'Get',
colNames: ['id','Name','MenuId','Menu Name'],
colModel: [
{name:'RowId',index:'RowId',width:300,fixed:true},
{name:'Name',index:'Name',width:300,fixed:true},
{name:'MenuId',index:'MenuId',width:300,fixed:true},
{name:'MenuName',index:'MenuName',width:300,fixed:true},
],
root:[
{id:"1",Name:"Main Menu", MenuId:"1",MenuName:"Menu1"},
{id:"2",Name:"Main Menu1",MenuId:"2",MenuName:"Menu2"},
{id:"3",Name:"Main Menu2",MenuId:"3",MenuName:"Menu3"}
],
pager: '#dvtreegridsamp',
Caption: 'example'
)};
然后,它的工作原理。
UPDATE:
这是在控制台我对象的输出,但我想我知道现在的问题可能是什么。
Object {datatype: "local", data: Array[3], colNames: Array[2], colModel: Array[2], height: "auto"…}ExpandColumn: "id"
caption: "I am SAD"
colModel: Array[2]0: Object1: Objectlength: 2__proto__: Array[0]colNames: Array[2]
data: Array[3]
datatype: "local"
height: "auto"
sortname: "id"
treeGrid: "true"
treeGridModel: "adjacency"
treedatatype: "local"
问题是,用于配置的参数被解析为地方的数组对象,而不是JSON样式的字符串。所以这些参数被忽略。我需要这些是JSON风格,然后一切正常。
如果我需要澄清任何事情,只要让我知道,它的晚了,我已经喝了很多咖啡。
那部分工作正常,速度很酷:)。 – Daniel 2014-10-02 15:10:41
让我编辑代码,以免误导 – Daniel 2014-10-02 15:11:34
如果你这么说的话。你没有解释的是,它究竟是如何“不起作用”。是否有错误报告?你有没有尝试过一些'console.log()'调用来看看发生了什么? 'tableConfigJson'确实是一个对象还是一个字符串? – Pointy 2014-10-02 15:11:40