Понимание поведения ширины столбца JQGrid

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

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

Как сделать так, чтобы размер заголовка совпадал с размером столбца?

Вопрос 2: Я заметил, что, хотя в документации указано, что параметр «ширина» столбца задается в пикселях, я вижу, что на самом деле он не в пикселях, а просто число относительно других значений ширины в сетке. Например. если все поля имеют размер 10, все они будут одинакового размера, но не шириной 10 пикселей.

Заранее благодарим за разъяснения, так как эта простая проблема, похоже, имеет более глубокие корни, чем я думал.


person AlexA    schedule 28.01.2010    source источник


Ответы (5)


Попробуйте поиграть с параметрами jqGrid 'autowidth' и 'shrinkToFit'. Например, если shrinkToFit истинно, ширина столбцов будет изменена, как если бы исходная ширина определяла процент. Подробнее читайте здесь.

person queen3    schedule 29.01.2010

Я была такая же проблема. Оказалось, что это существующие определения CSS по умолчанию для заполнения ячеек таблицы. Убедитесь, что ваш отступ между тегами th и td согласован. Я поместил div вокруг сетки с классом div и добавил в свой CSS следующее:

.grid td, .grid th {
    padding: 1pt 1ex !important;
}
person John Weber    schedule 26.09.2011

У меня была такая же проблема. Я решил эту проблему, добавив 4 строки кода в GridComplete. эти 4 строки изменят стиль td области содержимого [достаточно модификации стиля td первой строки]. Это проблема в jqgid. Что на самом деле устанавливает td внутри '', но этот стиль не отражается в td области содержимого. При разработке jqgrid они предполагали, что вся ширина столбцов будет зависеть от изменения ширины tds одной строки, но они изменились только для '', что является постоянной проблемой здесь.

Установите ширину столбцов в ColModel:

colModel: [
    { 
        name: 'Email', 
        index: 'Email', 
        editable: true, 
        edittype: 'custom', 
        width: 220, 
        editoptions: { 
            custom_element: function(value, options) {
                return EmailAddressCustomElement(value, options); 
            },
            custom_value: function(elem) { 
                var inputs = $("input", $(elem)[0]); 
                return inputs[0].value; 
            } 
        }
    }, 
    { 
        name: 'LocationAndRole', 
        index: 'LocationAndRole', 
        editable: true, 
        align: "left", 
        edittype: "button", 
        width: 170, 
        editoptions: { 
            value: 'Edit Location And Role', 
            dataEvents: [{ 
                type: 'click', 
                fn: function(e) { ShowUsersLocationAndRoles(e); } 
            }] 
        } 
    },

Добавьте приведенный ниже код в событие gridComplete:

gridComplete: function() { 
    var objRows = $("#list_accounts tr"); 
    var objHeader = $("#list_accounts .jqgfirstrow td"); 
    if (objRows.length > 1) { 
        var objFirstRowColumns = $(objRows[1]).children("td"); 
        for (i = 0; i < objFirstRowColumns.length; i++) { 
            $(objFirstRowColumns[i]).css("width", $(objHeader[i]).css("width")); 
        } 
    } 
}

Надеюсь, приведенный выше код поможет вам в решении проблемы.

person Mukthesh    schedule 22.03.2011

Установите ширину каждого столбца в процентах с помощью CSS

Добавьте классы css, как показано ниже

table.ui-jqgrid-htable thead{display:table-header-group}
#JQGridClientMaster td, #ui-jqgrid-htable th{display:table-cell}

Теперь установите ширину каждого столбца и

#JQGridClientMaster td:nth-child(1),th#JQGridClientMaster_rn{width:2% !important;}
person Dhanraj Manure    schedule 25.06.2015

person    schedule
comment
См. Источник (следует упомянуть) скопированного кода для комментариев: dorffweb.com/wordpress/2010/04/ - person Augustus Kling; 16.11.2011