【问题标题】:jqGrid not initializing. Is this the right approach?jqGrid 未初始化。这是正确的方法吗?
【发布时间】:2013-04-11 15:02:01
【问题描述】:

感谢您花时间帮助我完成 jqGrid 的第一步。我有一个关于如何处理我需要部署的网格的问题。

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

在第一个草图中,jqGrid 没有被初始化。空白页。为了缩小错误范围,我将 替换为包含 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>

你看到我可能遗漏的东西了吗? 提前致谢。

更新

版本: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

如前所述,为网格提供的数据来自 DataSet。我将数据集解析为 jsonstring,但如果为了使网格工作,我需要构建 JSON 对象而不是字符串,我可以这样做。但据我尝试,我无法使网格正常工作。 再次感谢。

更新 2。

经过几次更正后,网格现在已启动。但它是空白的。无法从后面的代码或 js 变量中获取数据。

【问题讨论】:

  • 您使用哪个版本的 jqGrid?您编写了“解析为已验证 Json 字符串的表”,但您没有描述输入数据的确切格式。您应该向 jqGrid 提供有关确切格式结构的提示。如果您只在问题中包含数据示例,那就太好了。你有一些服务可以通过 HTTP/HTTPS 提供 JSON 数据吗?
  • 我假设当您替换 &lt;%=jsonString%&gt; 时,您正在摆脱 ;
  • @Oleg 我更新了问题,以便您了解有关我的设置的更多信息。谢谢
  • @Mark 是的,好像它不喜欢它,字符串或变量。

标签: jquery asp.net jqgrid


【解决方案1】:

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

数据也没有按照 jqGrid 期望的方式格式化。您需要修复格式或编写自定义jsonReader(或localReader)函数。详情请查看docs on retrieving data

【讨论】:

  • 也许我遗漏了一些东西,但我已将“数据”的内容粘贴到一个 jsonstring 验证器中,它声称是一个 json 字符串。使用该变量作为 datastr 对 jqgrid 来说还不够吗?
  • 它是一个变量,而不是一个字符串,所以当 Reader 尝试 JSON.parse() 它时,不会发生任何好事。您可以通过将其用引号括起来将其转换为 JSON,但这无助于它没有 jqGrid 期望的布局的另一个问题。
猜你喜欢
  • 2023-03-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-10-24
  • 2019-10-03
  • 1970-01-01
相关资源
最近更新 更多