2015-10-20 5 views
0

Я пытаюсь получить данные при прокрутке в dhtmlxgrid с помощью enableSmartRendering(). Начальная загрузка() работает хорошо, поэтому верхняя часть сетки читаема. Однако, как только я прокручиваю вниз до того места, где у меня нет данных, и он пытается загрузить больше, браузер продолжает обстреливать запрос XHR, пока я снова не вернусь назад, при этом не будет больше данных, заполняющих сетку.Получение данных json через XHR для динамического интеллектуального рендеринга циклов dhtmlxgrid неопределенно

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.

Я попытался найти на этом сайте, и другие, не найдя никого встречая эту точную проблему. У меня возникла проблема при попытке добавить динамический интеллектуальный рендеринг к более старой части кода и решил, что я сделаю эту простую короткую версию, чтобы убедиться, что это не что-то со старым кодом, и она все еще не работает, но я могу " Кажется, что я решил это решение самостоятельно. Что мне не хватает?

ответ

1

В итоге я нашел решение. Я не построил массив правильно. Это работает:

$rows = array(); 
$temprows = array(); 
$rows['total_count'] = 1000; 
$rows['pos'] = $start; 
for ($i = $start;$i <= ($start + $c) && $i <= 1000;$i++) { 
    $row = array(); 
    $data = array(); 
    $row['id'] = $i; 
    $data[0] = $i; 
    $data[1] = "string"; 
    $row['data'] = $data; 
    array_push($temprows,$row); 
} 
$rows['rows'] = $temprows; 
echo json_encode($rows); 
+0

Это работает для бесплатной версии GPL DHTMLX? Я пытаюсь сделать это, но он загружается только один раз и не продолжается после прокрутки вниз. – Redsandro

+0

Кажется, только для про-версии, к сожалению. Источник: http://docs.dhtmlx.com/grid__smart_rendering.html – Ztrom

+0

Была некоторая двусмысленность, но информация была обновлена ​​после того, как я [спросил на форуме] (http://forum.dhtmlx.com/viewtopic.php?f= 2 & т = 49876). Спасибо, что вернулись к этому. – Redsandro