2015-03-20 3 views
2

Версия Guriddo jqGrid JS: 4.7.0.jqGrid прокрутка с большими строками

(function ($) { 
    'use strict'; 
    $(function() { 
    $('#jqGrid').jqGrid({ 
     url: '../StrictRoutesRebirth/StrictRoutes/', 
     mtype: 'GET', 
     datatype: 'json', 
     colModel: [{ 
     label: 'id', 
     name: 'id', 
     hidden: false, 
     key: true 
     }, 
     { 
     label: 'Примечание', 
     index: 'note', 
     name: 'note' 
     }, 
     { 
     label: 'Логин', 
     index: 'userLogin', 
     name: 'userLogin', 
     hidden: true, 
     edittype: 'text' 
     }], 
     scroll: 1, 
     height: 500, 
     width: 500, 
     rowNum: 50, 
     rownumbers: true, 
     pager: '#jqGridPager', 
     prmNames: { 
     nd: null, 
     search: null, 
     page: 'page', 
     rows: 'pageSize', 
     sort: 'sortKey', 
     order: 'sortOrder', 
     totalrows: 'totalQty' 
     }, 
     jsonReader: { 
     root: 'data.entries', 
     // page: 'data.pager.page', 
     total: 'data.pager.totalPages', 
     records: 'data.pager.totalQty' 
     } 
    }); 
    }); 
})(jQuery); 

Когда jqGrid отвечают длинные текстовые поля (которые далее сетки для отображения строки с большой высоты) с поддержкой scroll: 1 jqGrid стал давать сбои и не работают. Приложите screencast, чтобы показать проблему.

+0

[Github issue] (https://github.com/tonytomov/jqGrid/issues/695) – AuthorProxy

ответ

3

В предыдущих ответах я писал вам, что текущая реализация виртуальной прокрутки имеет множество ограничений. Я написал, что не рекомендую использовать функцию jqGrid, если это действительно действительно.

Ограничение, которое вы описываете в вопросе, очень ясно. Вы можете проверить the lines кода jqGrid, чтобы увидеть, что jqGrid получает outerHeight первой строки (см. the line) и умножает его на количество строк (см. the line и the line). Затем используется результат для вычисления количества новой страницы, которая должна быть установлена ​​после прокрутки.

Таким образом, совершенно ясно, что нельзя использовать функцию виртуальной прокрутки jqGrid в случае, если у каждой из них разная высота для разных строк.

В текущей реализации виртуальной прокрутки существует множество других проблем. Наиболее важным является ограничение количества строк, которое может отображаться в Internet Explorer. Если вы просто откроете the page в Internet Explorer , вы увидите только первую страницу данных, и у вас не будет возможности увидеть больше данных, и вы не увидите никаких советов, которые отображают данные, не все 20 строк, которые существуют в базе данных. Я нахожу, что проблема имеет много проблем, которые вы описали. Так что попробуйте использовать опцию scroll: 1, как правило, в случае большого количества строк, но точно в том случае, если она не работает. См. the answer за дополнительной информацией.

Если вы внимательно изучите документацию jqGrid, вы найдете много мест (например, here), что некоторые функции или некоторые методы jqGrid не работают с виртуальной прокруткой. Поэтому, если вы используете scroll: 1 в качестве своей функции по умолчанию, вы не сможете использовать многие функции jqGrid.

+0

Да, мне это нужно, и не изменяйте какие-либо конкретные функции, я помню о ваших предупреждениях, просто задайте вопрос для вас и команда jqGrid, поэтому вы узнаете о различных типах проблем. Я разрешаю это ограничение путем переноса содержимого ячейки в одной строке через css. Спасибо за широкий ответ. – AuthorProxy

Смежные вопросы