Автоматическая ширина столбца JQGrid

Мне просто интересно, как мы можем установить для ширины столбца jqGrid значение auto?

...
colModel: [
{ name: 'MyDescription', index: 'description', align: 'left', width: 150, sortable: false },
...

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


person SARAVAN    schedule 19.02.2010    source источник


Ответы (4)


В jqGrid невозможно указать столбец автоширины. Но вы можете использовать параметр shrinkToFit для сетки, для которой установлено значение true, и установить некоторые приблизительные значения ширины (например, 20, 20, 20, 80), и ширина столбцов будет масштабирована до ширины сетки.

Уменьшать до размеров:

Эта опция описывает тип расчета начальной ширины каждого столбца в зависимости от ширины сетки. Если значение равно true и значение параметра ширины установлено, то: Каждая ширина столбца масштабируется в соответствии с заданной шириной параметра. Пример: если мы определяем два столбца шириной 80 и 120 пикселей, но хотим, чтобы сетка имела ширину 300 пикселей, то столбцы пересчитываются следующим образом: 1- столбец = 300(новая ширина)/200(сумма всей ширины ) * 80 (ширина столбца) = 120 и 2 столбца = 300/200 * 120 = 180. Ширина сетки составляет 300 пикселей. Если значение равно false и установлено значение в опции ширины, тогда: Ширина сетки равна ширине, установленной в опции. Ширина столбца не пересчитывается и имеет значения, определенные в colModel.

person zihotki    schedule 19.02.2010
comment
Это главный недостаток jqGrid. - person Donald Taylor; 09.08.2012

Вы можете использовать метод setGridWidth.

Пример:

$(window).on('resize', function() {
   $("#jqgrid").setGridWidth($(window).width());
}).trigger('resize');

ДЕМО

person Community    schedule 10.01.2012

Это в основном работает для меня.

<div id="myjqgridwrapper" style="width:100%;">
    <table id="myjqgrid"></table>
    <div id="myjqgridfooter"></div>
</div>

<script type="text/javascript">
    //script to autosize grid
    //don't forget autowidth:true for initial size
    $(window).bind('resize', function(){
        //set to 0 so grid does not continually grow
        $('#myjqgrid').setGridWidth(0);
        //resize to our container's width
        $('#myjqgrid').setGridWidth($('#myjqgridwrapper').width());
    }).trigger('resize');
</script>
person Biff MaGriff    schedule 11.09.2012

Вы можете попробовать использовать tableToGrid, поскольку насколько я помню, он сохраняет ширину. Если это так, вы также можете просмотреть его исходный код, если его поведение не полностью соответствует вашим потребностям.

person queen3    schedule 22.02.2010