2015-08-19 2 views
1

У меня возникла проблема с шириной сетки Kendo. Я хочу, чтобы сетка растянулась, чтобы соответствовать содержимому сетки. Эта сетка, над которой я работаю, создается динамически, поэтому время от времени она может иметь всего 2 столбца, а иногда может иметь максимум 5 столбцов. Я не хочу, чтобы сетка расширялась и отображалась целая страница для отображения всего двух столбцов.Как установить ширину сетки пользовательского интерфейса kendo

Чтобы получить эту работу, я добавил следующее CSS

.k-grid table{ 
    display: inline; 
} 

Проблема заключается в том, что, когда применяется этот стиль, он полностью портит заголовок столбца и выравнивание столбцов. Кто-нибудь знает, как это исправить?

ответ

2

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

сделать сетку sortable: false

и использовать этот CSS

#gridId table { 
    width: auto; 
} 

Но при этом вы потеряете возможность прокрутки. Но вы можете обернуть свою сетку кендо в другой контейнер и реализовать свою собственную прокрутку.

1

Вместо того чтобы пытаться применить некоторые CSS, вы можете использовать некоторые jQuery для выполнения этой задачи. Я делаю что-то подобное с точки зрения высоты. Возможно, что-то вроде этого будет работать для вас (я изменил это, чтобы сделать высоту и ширину).

function resizeGrid(size) { 

    if (size === null || size === undefined) { 
     size = 0.6; 
    } 

    var windowHeight = $(window).height(); 
    var windowWidth = $(window).width(); 
    windowHeight = windowHeight * size; 
    windowWidth = windowWidth * size; 
    $(".k-grid-content").height(windowHeight) 
    $(".k-grid).width(windowWidth); 
} 

так что все это функция делает масштабирование сетки на основе текущего размера окна так, например, если вы хотите, чтобы сетка занять все доступное пространство, т.е. высота макс и шириной вы могли бы назвать resizeGrid(1), если вы хотите его меньше говорят, чтобы взять 50% от размера экрана, тогда вы бы использовали reszieGrid(0.5), если значение не используется, тогда функция просто идет со значением по умолчанию 60% доступной ширины/высоты.

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

, ориентируясь на классы kendo css, он упрощает повторное использование этой функции.

если вам нужна дополнительная информация, дайте мне знать.

+0

Спасибо за решение @David. Он работает очень хорошо. Но моя проблема в том, что я не хочу упоминать ширину явно для сетки. Единственное, что я хочу, - это охватить сетку, основанную на количестве столбцов и содержимом. Именно по этой причине я указал свойство отображения. Чтобы сделать это в угловой и чистой таблице html, очень просто, проблема начинается, когда на экране появляется сетка кендо. – Nilesh

+0

Ну Кендо поддерживает углы, как первый участник. Извините, я не могу подняться на Угловое. Вы можете изменить этот код, который будет запущен в событии databound, а затем скорректируйте его на основе количества столбцов. –

+0

Согласовано, но все же упоминание ширины столбца не имеет смысла, так как это динамическая сетка, и я не знаю, какой контент я получаю с сервера по длине. Единственная проблема, которую я вижу в CSS, который я применил, заключается в том, что стиль применяется к заголовкам и таблицам содержимого. Когда текст в 'th' больше, чем текст в' td', он испортил выравнивание. Я попытаюсь сделать снимок с установкой ширины в зависимости от количества столбцов и посмотреть, как это происходит. – Nilesh

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