Kendo Grid部分列水平滚动_表格的列一部分横向滚动另外一部分固定
程序员文章站
2022-03-01 15:06:44
...
简介
很多时候、我们希望有很多列在 Kendo Grid 上面横向滚动、在这种情况下
有时需要固定一些列(没有受到水平滚动)为便于观看的数据
列固定功能包含在剑道UI的最新版本、如果我们使用的是 Kendo UI的旧版本
那么有没有内置的功能来固定水平滚动的列呢、这里有一个方法、使我们可以使用CSS和jQuery实现相同的效果
首先、我们必须划分 Grid 结构为2格、一个用于固定的列及其他的可滚动列
添加一些CSS的可冻结列 Grid、以便它们不能滚动
我们需要有一些JS的逻辑、这样的垂直滚动的非冷冻列、自动固定列也将滚动
这里是相同的代码
HTML 代码
<div id="divFreezableEmployeeDetails"></div> <div id="divScollableEmployeeDetails"></div>Jquery 代码
var freezedGridId = $("#divFreezableEmployeeDetails"); var ScollableGridId = $("#divScollableEmployeeDetails"); //Initialize and populate the grids GetDatasource( function (dataSource) { if (dataSource != null) { InitializeFreezableEmployeeDetails(freezedGridId, dataSource ); InitializeScollableEmployeeDetails(ScollableGridId , dataSource ); } }); //initialize the FreezedEmployeeDetails function InitializeFreezableEmployeeDetails(gridId, source) { gridId.kendoGrid({ dataSource: { data: source, schema: { model: { fields: { EmployeeId: { type: "int" }, Name: { type: "string" } } } } }, height: 700, sortable: true, resizable: true, scrollable: true, width: 1700, columns: [ { title:"EmployeeId" field: "EmployeeId" width: 90 }, { title:"Name" field: "Name" width: 90 } ] } }); //initialize the ScollableEmployeeDetails function InitializeScollableEmployeeDetails(gridId, source) { gridId.kendoGrid({ dataSource: { data: source, schema: { model: { fields: { Age: { type: "int" }, Address: { type: "string" }, Exp:{type:"string"}, Dob:{type:"string"}, Skill:{type:"string"} } } } }, height: 700, sortable: true, resizable: true, scrollable: true, width: 1700, columns: [ { title:"Age" field: "Age" width: 90 }, { title:"Address" field: "Address" width: 90 }, { title:"Exp" field: "Exp" width: 90 }, { title:"Dob" field: "Dob" width: 90 }, { title:"Skill" field: "Skill" width: 90 }, ] } }); //Make the Freezable grid vertically scrollable on //vertical scrolling of Scrollable grid $("#divScollableEmployeeDetails .k-grid-content") .on("scroll", function(e) { $("#divFreezableEmployeeDetails .k-grid-content") .scrollTop($(e.currentTarget).scrollTop()); });CSS 代码
#divFreezableEmployeeDetails{ width: 100px; border-right: none; float:left } #divScollableEmployeeDetails { width: 200px; float:left } #divFreezableEmployeeDetails .k-grid-header { padding-right: 0 !important; } #divFreezableEmployeeDetails .k-grid-content{ overflow-x: scroll; overflow-y: hidden; }好了、这样就可以是实现一部分列滚动、一部分列固定了