2014-09-02 294 views
9

我使用jQuery插件数据表,如果我们不指定网格的列宽度,它将自动宽度的列获取标题或数据内容的长度。如何使Kendo Grid Column自动宽度

现在我想在Kendo Grid中使用同样的功能,但除了使Grid包装风格固定并为所有列设置了col宽度css外,我无法找到它,这使得小长度字段也占用大空间。所以我的问题是如何使Kendo网格栏(通常我有很多领域,它是可以滚动的)自动宽度或不同的长度(我不希望手动设置每列的宽度) 。

感谢

回答

7

你种得设置宽度,当你定义的列,如果你不指定宽度,那么它只要内容的自动调宽。 看看这个DOChttp://docs.telerik.com/kendo-ui/api/web/grid#configuration-columns.width

columns: [ 
    { field: "name", width: "200px" }, 
    { field: "tel", width: "10%" }, // this will set width in % , good for responsive site 
    { field: "age" } // this will auto set the width of the content 
    ], 

如果你需要更多的方式来处理剑道宽度,看http://docs.telerik.com/kendo-ui/getting-started/web/grid/walkthrough#column-widths

5

设置滚动假应该做的伎俩:

$('#grid').kendoGrid({ 
    dataSource: { 
    data: data 
    }, 
    scrollable: false, 
    resizable: true 
}); 
3

我也用dataBound来解决这个问题:

我在数据绑定

 <kendo-grid id="grid" options="mainGridOptions"> 
     </kendo-grid> 



     dataBound: function(){ 
      var grid = $("#grid").data("kendoGrid"); 
      for (var i = 0; i < grid.columns.length; i++) { 
       grid.autoFitColumn(i); 
      } 
     }, 
     dataSource: $scope.data, 

约剑道自动调整列的问题,你可以做到这一点jQuery中:

$('#grid').kendoGrid({ 
    dataSource: { 
    data: data 
    },dataBound: function(){ 
      var grid = $("#grid").data("kendoGrid"); 
      for (var i = 0; i < grid.columns.length; i++) { 
       grid.autoFitColumn(i); 
      } 
     }, 
+0

谢谢你的建议,但是这是可用,因为2015年第一季度。 – 2017-06-22 15:46:06

+0

@federico嵌入一行配置?没有js功能?怎么样? – 2017-06-22 16:43:32

+1

不幸的是,并不是一种简单的方法,你需要从每列的X表中获得像max1(len(col1))那样的最大长度,因为len1,并且稍后用像素预先设置每个像素的宽度,我是仍在研究这个方程式,但是它可以在2014年或更早的旧版本中工作。 – 2017-06-23 07:31:46