Столбцы KendoUI автоматически подгоняют столбцы до минимальной / максимальной ширины - PullRequest
1 голос
/ 20 января 2020

Я использую метод autoFitColumns, как описано здесь:

https://www.telerik.com/kendo-angular-ui/components/grid/columns/resizing/#toc -auto-fit-the-content

Но в некоторых случаях метод размер столбцов слишком мал (например, если в сетке только 1-2 столбца) или слишком велик (когда столбец содержит длинный текст и нет необходимости отображать его все).

Есть ли способ установить максимальную / минимальную ширину при автоматическом определении размера?

1 Ответ

0 голосов
/ 21 января 2020

Насколько я знаю, это не встроено в сетку; однако вы можете сделать это, обновив параметры столбца:

var FitCols = function(){
  var grid = $("#grid").data("kendoGrid");
  if (grid) {
    //copy current column options from the grid
    var newOptions = $.extend({}, grid.getOptions().columns);               
    var minW = 80;  //minimum column width
    var maxW = 300; //maximum column width
    for (var i = 0; i < grid.columns.length; i++) {
      grid.autoFitColumn(i);
      //after autofit, limit to max and min width
      var curW = grid.columns[i].width;
      var actualW = Math.max(curW, minW); //min check
      actualW = Math.min(actualW, maxW); //max check
      newOptions[i].width = actualW + "px";
    }    
    grid.setOptions({ columns:  newOptions });
  }        
};  

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

Вот демонстрация dojo: http://dojo.telerik.com/@ezanker / EFiVoNiP

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

...