Как указать ширину сетки в процентах?
Кто-нибудь знает, как установить ширину сетки в процентах?
например
но на странице ширина сетки больше 2000 пикселей. Он не изменяется до ширины страницы.
Любая помощь будет оценена.
Спасибо
Падманабхан
Ответы
Ответ 1
Я вижу, что этот вопрос действительно старый, но я столкнулся с этим вопросом, пытаясь выяснить, как заставить мои столбцы использовать всю ширину таблицы. надеюсь, это когда-нибудь поможет кому-нибудь.
Я не мог понять, как установить ширину столбца явно, но я сделал это для работы неявно.
вот как это сделать:
сначала в объявлении столбца добавьте width: 300 (или любую нужную ширину)
{id:"name", name:"Student Name", field:"firstName", width: 300}
установите это для всех ваших столбцов, те, которые вы хотите увеличить, помещают большее число, например. 500
то в ваших настройках параметров добавьте forceFitColumns: true
{enableCellNavigation: true, enableColumnReorder: false, forceFitColumns: true};
выполнив это, я смог заставить столбцы таблицы заняться оставшимся пространством таблицы и поддерживать части, которые я хочу относительно друг друга.
Ответ 2
У меня есть функция для изменения сетки.
function resizeGrid(newsize, grid) {
$('#dataGrid').css('width', newsize);
grid.resizeCanvas();
}
Не забудьте добавить forceFitColumns: true
к вашим параметрам сетки, как говорит конман
Ответ 3
FYI, похоже, это работает из коробки в последних версиях SlickGrid.:)
Ответ 4
Да, это возможно, но я не могу найти легкое решение.
Поэтому вам нужно немного настроить его.
В настоящее время я работаю над решением для этого.
Вот рабочий пример, но в нем есть несколько ошибок. Некоторые из них связаны с настройкой jsfiddle.
http://jsfiddle.net/MQBLn/8/
В основном я создал функцию, которая форматирует ячейки на основе размеров заголовков столбцов.
Затем вы должны вызывать эту функцию всякий раз, когда есть действие. (Сортировка, изменение размера и т.д.)
Также мне пришлось внести некоторые незначительные изменения в slick.grid.js. Таким образом, вы найдете его загруженным в верхней части раздела JS, за которым следуют пользовательские js. Затем некоторые правила перезаписи для css.
Вот моя функция форматирования ячеек
function formatCells(grid)
{
var columns = grid.getColumns();
var grid_width = grid.getGridPosition().width;
var header = $(".slick-header-columns");
for(var i in columns)
{
$(".slick-cell.r"+i).css("width", (Math.floor(((header.children().eq(parseFloat(i)).width()+9)/(grid_width-_scrollBarWidth))*10000)/100)+"%");
}
}
Я надеюсь, что это полезно и, возможно, однажды встроено в SlickGrid в качестве параметра.
Ответ 5
SlickGrid-formatter снабжает вас 5 параметрами:
formatter: function ( row, cell, value, columnDef, dataContext )
Вы можете настроить ширину столбцов, используя параметр dataContext, в пределах конкретного форматирования и т.д.: dataContext.width = 600
делает конкретный столбец 600px.
Пример
{
/* Categories */
id: "categories",
formatter: function ( row, cell, value, columnDef, dataContext ) {
var html = '';
if ( value.indexOf( 'variation-child' ) != -1 ) {
return value;
} else if ( value ) {
for ( var i = 0; i < value.length; i++ ) {
if ( value[ i ] ) {
html += '<div class="box category-box" title="' + value[ i ] + '">' + value[ i ] + '</div>';
}
}
}
columnDef.width = 600 * value.length;
return html;
},
name: "Categories", field: "categories", sortable: true, editor: Slick.Editors.TaxonomyPopupEditor
}
Не забудьте использовать grid.resizeCanvas();
(пересчитать ширину), когда вы закончите добавлять данные в сетку.