0

我一直在四处寻找答案,但一直找不到。我目前正在从 mssql 数据库中获取数据,并且在 php 端似乎一切都很好,但无论如何这里是代码

$responce->total = $total_pages;
$responce->page = $page;
$responce->records = $count;
$i=0;

while($row = sqlsrv_fetch_array($result,SQLSRV_FETCH_ASSOC)) {
    $responce->rows[$i]['id']=$row[Cell1];            
    $responce->rows[$i]['cell']=array($row[Cell1],$row[Cell2],$row[Cell3]);
    $i++;
}
echo $json_encode($responce);

我的 json 文件是这样的:

{"total":"1","page":"1","records":"1","rows":[{"id":"1","cell":["1","2","3"]}]}

最后我的 HTML 看起来像这样:

<link rel="stylesheet" type="text/css" media="screen" href="css/south-street/jquery-ui-1.10.3.custom.css" />
<link rel="stylesheet" type="text/css" media="screen" href="css/ui.jqgrid.css" />
<link href="css/ui.multiselect.css" />

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script>
<script src="js/jquery.layout.js" type="text/javascript"></script>
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/ui.multiselect.js" type="text/javascript"></script>
<script type="text/javascript">
jQuery(document).ready(function () {
    $("#list").jqGrid({
        url: "retrieve.php",
        datatype: "json",
        mtype: "POST",
        colNames: ["Cell1", "Cell2", "Cell3"],
        colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' },
        ],
        jsonReader: { repeatitems: false },
        pager: "#pager",
        rowNum: 10,
        rowList: [10, 20, 30],
        scroll:1,
        sortname: Cell1",
        sortorder: "asc",
        sortable:true,
        viewrecords: true,
        gridview: true,
        ignoreCase:true,
        autowidth:true,
        ondblClickRow: function (id) {
            $(this).jqGrid('viewGridRow', id, { caption: "Server Information" });
        }
    });
});
</script>

如果有人可以帮我弄清楚为什么我的网格无法正确填充,我将不胜感激!

4

2 回答 2

0

可能是你的 JS 文件有冲突。

<script src="js/jquery.js" type="text/javascript"></script>
<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script> 

您应该只使用一个 JS 而不是同时使用两个 jquery 文件。

并像这样更改js文件的顺序..

<script src="js/jquery-1.9.0.min.js" type="text/javascript"></script> 
<script src="js/i18n/grid.locale-en.js" type="text/javascript"></script>
<script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>
<script src="js/jquery.layout.js" type="text/javascript"></script>
<script src="js/ui.multiselect.js" type="text/javascript"></script>

请从 colModel 中删除 ","

colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' },
        ],

colModel: [
            { name: "Cell1", width:55 , index:'Cell1' },
            { name: "Cell2", width: 90, index:'Cell2' },
            { name: "Cell3", width: 80, index:'Cell3' }
        ],

我认为它可以解决您的所有问题。

于 2013-06-17T10:23:04.253 回答
0

您的代码中的主要错误如下:

  • 您应该将语法错误修复sortname: Cell1"sortname: "Cell1".
  • 删除jsonReader: { repeatitems: false }您使用的 thze 格式的错误。
  • 删除 jQuery 的第二个版本。要么 要么jquery.js应该jquery-1.9.0.min.js使用。
于 2013-06-14T16:02:09.977 回答