kendo Grid的使用

html中定义div

<div id="grid"></div>

创建一个options

//创建kendo的数据源
var dataSource = new kendo.data.DataSource({
    transport: {
        read: {
            url: "getUser.do",//服务器链接地址
            contentType : "application/json",
            type : "POST",
            dataType : "json"
        },
        parameterMap : function(options, operation) {
            //此处封装自定义的参数,例如:userId
            options.userId= 1;
            return JSON.stringify(options);
        }
    },
    schema: {
        data: "data",//获取返回的json对象中的data属性的值显示在表格中
        total: "total"//获取返回的json对象中的total属性作为分页中的总数据条数
    },
    pageSize: 15,//每页显示的数据条数
    serverPaging: true//表示由服务器端分页
});
var options = {
    dataSource: dataSource,
    height: 515,
    groupable: false,
    sortable: false,
    resizable: true,
    selectable: "multiple,row",//表格可多选
    pageable: {
        refresh: true,//表格左下角会出现刷新按钮,点刷新会重新请求服务器
        buttonCount: 10,//分页按钮的数量
        pageSizes: [10, 15, 20]//每页显示的数据条数的选择
    },
    change: kendoGridChange,//表格改变事件,例如:选中,见下面kendoGridChange方法
    columns: [{title: "用户编号", field: "userId", width: 65}
            , {title: "用户名", field: "userName", width: 70, template: "#=userName==null?'--':userName#"}]//表格的列定义
};

创建kendoGrid

//判断kendoGrid是否已定义
var dataDisplayGrid = $("#grid").data("kendoGrid");
if (dataDisplayGrid) {
    //销毁kendoGrid,可用来在一个表格中显示不同类型的数据,比如:点击切换按钮从服务器加载不同的数据,如:User,Student,columns不一样的情况。
    $('#grid').kendoGrid('destroy').empty();
}
//创建kendoGrid
$("#grid").kendoGrid(options);

kendoGrid全选

$("#grid tr").addClass("k-state-selected");
$("#grid").data("kendoGrid").trigger("change")

kendoGrid取消所有选中项

$("#grid").data("kendoGrid").clearSelection();

kendoGrid选择事件

function kendoGridChange(e){
    var cellId = e.sender._cellId;
    //获取gridName
    var gridName = cellId.substring(0, cellId.indexOf("_"));
}

kendoGrid获取选中项

var dataItems = [];//存储选中的项,对象数组(每一行数据所对应的对象)
var dataItemGrid = $("#grid").data("kendoGrid");
if (dataItemGrid === undefined) {
    return dataItems;
}
dataItemGrid.select().each(function (i) {
    dataItems[i] = dataItemGrid.dataItem($(this));
});
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Kendo UI框架提供了强大的Excel导出功能,通过Grid的saveAsExcel能方便地导出Grid中的数据,而且格式美观大方,使用起来也非常方便。但是在实际使用中不是很理想,主要有以下两个问题: 1. 导出的列数据是原始值 Kendo UI默认导出的是该列的value值,及查出来的值,有时候我们会用template渲染一下导出的列,比如将“Y”显示成“是”,把“N”显示成“否”。而Kendo UI导出的却是Y/N这种只有程序员看得懂的数据库标识,显然不是我们需要的,这种情况非常常见。 2. 不能灵活控制可导出的列 Kendo UI的Excel导出主要看两点,一是该列(column)是field字段,而不是自定义的name;二是该列不是隐藏的(hidden:true)。这样我们无法灵活导出我们需要的列。 为了解决上面两个问题,我查看了Kendo UI的源代码,提取并改进了源代码。主要更改点及使用方法请看下面源代码。主要针对以上两点做了更改,只需要在grid定义columns时加上isExport或exportTemplate即可: 在导出数据,先看该列有没有自定义exportTemplate(),没有则看Kendo UI自带的template(),再没有才会导出查出来的值。 判断是否导出该列不再看hidden属性,而是看列的isExport属性,如果为false则不导出,其它情况一律导出该列。 经过这两个更改,基本可以应对所有业务场景,可以方便快捷地开发了! 但要注意,Kendo UI自带的导出功能无法应用于导出大量数据,似乎是浏览器的jvm溢出了,建议超过5万条的数据导出还是老老实实写后台导出功能吧。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值