Grid 如果剑道网格绑定到动态数据源,是否调整列大小?

Grid 如果剑道网格绑定到动态数据源,是否调整列大小?,grid,kendo-ui,Grid,Kendo Ui,我正在尝试为我的剑道网格启用水平滚动。到目前为止,我听说您是否在列定义中添加了width。但如果数据是动态的,你会怎么做 我试过几种方法。这段代码可以帮助您理解这一点 var kgrid = $("#grid").kendoGrid({ height: 155, pageable: true, dataSource:ds, dataBound:function(e){ var m = kgrid.data('kendoGrid');

我正在尝试为我的剑道网格启用水平滚动。到目前为止,我听说您是否在列定义中添加了
width
。但如果数据是动态的,你会怎么做

我试过几种方法。这段代码可以帮助您理解这一点

 var kgrid = $("#grid").kendoGrid({
    height: 155,
    pageable: true,
    dataSource:ds,
    dataBound:function(e){
        var m = kgrid.data('kendoGrid');            
        console.log('dataBound: ', m.columns);
    },
    dataBinding:function(e){
        var m = kgrid.data('kendoGrid');
        var obj = ds.view()[0];
        console.log('dataBinding columns before: ', m.columns);
        //for(x in obj){
        //    if(x[0] == '_')
        //        continue;
        //    m.columns.push({field: x, width:'200px'});
        //}
        console.log('dataBinding columns after: ', m.columns);
    }//,
    //columns:[
      //  {field:'col1', width: '200px'},
        //{field:'col2', width: '200px'},
        //{field:'col3', width: '200px'},
        //{field:'col4', width: '200px'}
        //]
});
这里还有指向我的页面的链接:


我想为列设置一些大小,从而启用水平滚动。

目前为止,我能看到的唯一方法是在每次新数据到达时完全销毁网格并重新绑定它。当它到达时,我们必须获取第一项,读取属性并创建
数组。我们必须在这里设置每个对象的
width
属性,如下所述:

success: function (data) {
        var cols = [];
        var item = data[0];
        $.each(item, function (key, val) {
            cols.push({
                field: key,
                width: '325px'
            });
        });

        theGrid.kendoGrid({
            dataSource: {
                data: data,
                pageSize: 5
            },
            pageable: true,
            columns: cols,
            height: 225
        });
    } //end success

Fiddle:

如果grid.widthds.read(…)做了这么多。在网格初始化时,我没有指定任何
。已触发
数据绑定
事件。我在该事件中尝试调整列大小的任何操作都不起作用…您使用的是Kendo的mvvc样式类型吗