通过XHR获取json数据,无限期地动态智能渲染dhtmlxgrid循环

时间:2015-10-20 10:37:43

标签: javascript php json dhtmlx

我在使用enableSmartRendering()在dhtmlxgrid中滚动时尝试获取数据。初始load()运行良好,因此网格的顶部是可读的。但是,只要我向下滚动到没有数据的地方并尝试加载更多数据,浏览器就会一直触发XHR请求,直到我再次向上滚动,没有更多数据填充网格。

使用Javascript:

mygrid = new dhtmlXGridObject("grid");
mygrid.setImagePath("codebase/imgs/");
mygrid.setHeader("Col1,Col2");
mygrid.setInitWidths("100,200");
mygrid.setColAlign("right,left");
mygrid.setColTypes("ro,ro");
mygrid.enableSmartRendering(true, 20);
mygrid.init();
mygrid.load("test.php?anrop=ajax", "json");

PHP:

if (isset($_GET['posStart'])) {
    $start = $_GET['posStart'];
} else {
    $start = 0;
}
if (isset($_GET['count'])) {
    $c = $_GET['count'];
} else {
    $c = 20;
}
$data['total_count'] = 1000;
$data['pos'] = $start;
for ($i = $start;$i <= ($start + $c) && $i < 1000;$i++) {
    $data['rows'][$i]['id'] = $i;
    $data['rows'][$i]['data'][0] = $i;
    $data['rows'][$i]['data'][1] = "string";
}

echo json_encode($data);

Link to short video showing the issue.

我尝试在这个网站和其他网站上搜索,却没有发现任何人遇到这个问题。我在尝试将动态智能渲染添加到较旧的代码时遇到了问题,并认为我制作这个简单的短版本以确保它不是旧代码的东西,而且它是&#39 ; s仍然没有工作,但我似乎无法自己解决问题。我错过了什么?

1 个答案:

答案 0 :(得分:1)

我最终找到了解决方案。我没有正确构建数组。这有效:

$('#Destination').attr('placeholder', results[0].formatted_address);