2013-04-11 75 views
0

感谢您的时间帮助我使用jqGrid的第一步。我有一个关于如何处理我需要部署的网格的问题。jqGrid没有初始化。这是正确的方法吗?

要显示在网格中的数据来自DataSet。我把表格解析成一个已经过验证的Json字符串。所以,逻辑将是使用数据类型:'jsonstring',但我也读过jsonstring和datastr在分页方面是不是最新的。那么你有什么建议?

在这第一个草图中,jqGrid没有被初始化。空白页。为了缩小错误,我用包含jsonstring的局部变量代替了<%= jsonString%>:相同的结果。

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/themes/south-street/jquery-ui.css" type="text/css" media="all" />  
<link href="css/ui.jqgrid.css" rel="stylesheet" type="text/css" /> 

<script src="js/jquery-1.8.2.js" type="text/javascript"></script> 
<script src="js/jquery-ui-1.9.1.custom.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-es.js" type="text/javascript"></script> 
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script> 

<script type="text/javascript"> 
jQuery(document).ready(function() { 
    $(function() { 
     $("#Grid").jqGrid({ 
      datatype: 'jsonstring', 
      datastr: <%=jsonString%>; 
      mtype: 'POST', 
      height: 100, 
      width: 500, 
      colNames: ['Name', 'LastName', 'Qty', 'Yold', 'Address'], 
      colModel: [ 
        { name: 'Name', index: 'PCRC', width: 100, sortable: true }, 
        { name: 'LastName', width: 100, sortable: true }, 
        { name: 'Qty', width: 100, sortable: true }, 
        { name: 'Yold', width: 100, sortable: true }, 
        { name: 'Address', width: 100, sortable: true } 

       ], 
      rowNum: 10, 
      rowList: [10, 20, 30], 
      pager: '#GridPager', 
      sortname: 'Name', 
      viewrecords: true, 
      sortorder: 'asc', 
      caption: 'Test Grid' 
     }); 

     $("#Grid").jqGrid('navGrid', '#GridPager', { edit: false, add: false, del: false }); 
    }); 
}); 
</script> 

网格根本不显示。

<table id="Grid" ></table> 
<div id="GridPager"></div> 

您是否看到我可能错过的东西? 在此先感谢。

UPDATE

版本:jQuery的1.8.2.js 奥列格:没有服务。

这里是我用于变量数据的jsonstring示例。

var data = {"Tables":[{"Rows":[{"Name":"Alex","LastName":"Grey","Qty":3,"Yold":20,"Address":"27 rd"},{"Name":"Sebastian","LastName":"Wallace","Qty":78,"Yold":27,"Address":"33 xx"},{"Name":"Rose","LastName":"Garner","Qty":1,"Yold":33,"Address":"1111 rtd."},{"Name":"Carole","LastName":"Stewart","Qty":45,"Yold":18,"Address":"122 dr."}]}]};  
     $("#GridCantidadPendientes").jqGrid({ 
      datatype: 'jsonstring', 
      datastr: data, 
      //and so on 

如前所述,为网格提供的数据来自DataSets。我有DataSets解析为jsonstring,但如果为了使网格工作,我需要建立JSON objets而不是字符串我可以做到这一点。但据我所尝试,我不能让网格工作。 再次感谢。

更新2

几个更正后的网格现在到了。但它是空白的。无法从后面的代码或js变量中获取数据。

+0

你使用哪个版本的jqGrid?你写了“解析成已经验证的Json字符串的表”,但是你没有描述输入数据的确切格式。您应该向jqGrid提供有关确切格式结构的提示。如果你只是在你的问题中包含数据的例子,那很好。你有一些服务可以提供每个HTTP/HTTPS的JSON数据吗? – Oleg 2013-04-11 18:18:40

+0

我假设你替换''%= jsonString%>''你摆脱了';'? – Mark 2013-04-12 01:39:34

+0

@Oleg我更新了这个问题,所以你有更多关于我的设置的信息。谢谢 – 2013-04-12 12:19:20

回答

0

在您的更新中,data不是JSON字符串,它只是一个变量。您可能需要使用datatype: local

数据也没有以jqGrid预期的方式格式化。您需要修正格式或编写自定义jsonReader(或localReader)函数。有关详细信息,请检查docs on retrieving data

+0

也许我错过了一些东西,但我已经将'data'的内容粘贴到了一个jsonstring验证器中,并声称它是一个json字符串。使用该变量作为datastr是不够的jqgrid? – 2013-04-12 15:38:48

+0

这是一个变量,而不是一个字符串,所以当Reader尝试使用JSON.parse()时,没有什么好的事情会发生。你可以通过将它换成引号将它转换为JSON,但这不会有助于其他问题没有jqGrid期望的布局。 – RickF 2013-04-12 21:46:49

相关问题