Kendo UI Grid 样式改变&控制

2 篇文章 0 订阅
2 篇文章 0 订阅

目录

一. 单元格颜色控制

1. 改变单元格背景颜色

2. 改变单元格边框

3. 改变行背景色

二. 单元格内容控制

1. 单元格换行控制

a. css控制不换行

b. JS控制指定换行

2. 表格以文本内容展示

三. 表格头控制

1. 表格头隐藏

2. 合并表头

a. 分组合并表头

b. 分组合并表头

四. 滚动条控制

grid滚动条样式


一. 单元格颜色控制

此文仅对表格样式&部分特殊效果做讲解,如果想要知道kendo UI grid的详细用法,可见我整理的另一篇文章:

KendoUI Grid 用法详细整理:https://blog.csdn.net/qwerdfcv/article/details/103479584?spm=1001.2014.3001.5502

1. 改变单元格背景颜色

//改变表格指定单元格背景色
Emt.changeGridCellBackColor = function (grid, num) {
    $.each(grid.dataSource.data(), function (i, v) {
        if (v.status == 'RELEASED') {//可设定条件改变
            $('tbody > tr[data-uid="' + v.uid + '"] > td:eq(' + num + ')').css("background-color", releasedColor);
        }
    });
}

//控制单元格内容样式
{
	field: "status",
	title: '状态',
	attributes: {style: "text-align:center"},
	headerAttributes: {style: "text-align:center"},
	width: 100,
	template: function (dataItem) {
		var v = dataItem.status || "";
		$.each(ORDER_STATUS, function (i, n) {
			if ((n.status || '').toLowerCase() == (v || '').toLowerCase()) {
				v = n.statusDes;
				return false;
			}
		})

		if (dataItem.status == 'RELEASED') {
			return '<div style="width: 100%;height:100%;background-color: skyblue">' + v + '</div>'
		} else if (dataItem.status == 'HOLD') {
			return '<div style="width: 100%;height:100%;background-color: khaki">' + v + '</div>'
		} else if (dataItem.status == 'CANCEL') {
			return '<div style="width: 100%;height:100%;background-color: darkgrey">' + v + '</div>'
		} else if (dataItem.status == 'COMPLETED') {
			return '<div style="width: 100%;height:100%;background-color: palegreen">' + v + '</div>'
		} else {
			return v || "";
		}
	}
}

2. 改变单元格边框

{
	field: "productionLot",
	title: '生产批次',
	width: 220,
	attributes: {style: "text-align: center;border-style: solid;border-width: 0 1px 1px 0px;border-color: red"},//边框样式
	headerAttributes: {style: "text-align: center;"}
}

3. 改变行背景色

$('tbody > tr[data-uid="' + v.uid + '"]').css("background-color", "#b0d74d");

二. 单元格内容控制

attributes: {style: "text-align:center;"},//列数据居中,在属性对象中可以为添加class 和 style。

headerAttributes: {style: "text-align:center"},//列头文本居中,在属性对象中可以为列头添加class 和 style。

1. 单元格换行控制

a. css控制不换行

{
	field: "costCenterDesc",
	title: '成本中心',
	width: 120,
	attributes: {style: "text-align:center;white-space:nowrap;text-overflow:ellipsis;"},//内容不换行 text-overflow:ellipsis;:超出部分省略号显示
	headerAttributes: {style: "text-align:center"}
}

b. JS控制指定换行

//不做设置,内容会自动换行
{
	field: "productionCode",
	title: '产品编码',
	width: 160,
	attributes: {style: "text-align: center;"},
	headerAttributes: {style: "text-align: center;"},
	template: function (dateItem) {
		var v = dateItem.productionCode.replace(/,/g, '<br/>');//逗号分隔内容换行
		return v || '';
	},
}

2. 表格以文本内容展示

$("#grid").find(".k-grid-content").html("不展示数据,展示固定文本,并设置文本样式").css({
	"color": "#169bd5",
	"font-size": "20px",
	"white-space": "nowrap",
	"text-align": "center",
	"line-height": "124px"
});

三. 表格头控制

1. 表格头隐藏

{
	field: "value",
	width: 120,
	attributes: "text-align: center;",
	headerAttributes: {hidden: true} //隐藏头
}

2. 合并表头

a. 分组合并表头

{
    title: '分组头',
    headerAttributes: {style: "text-align:center"},
    attributes: {style: "white-space:nowrap;text-overflow:ellipsis;text-align:center;"},
    width: 200,
    columns : [
        {
            title: "分组行1",
            field: "line1",
            width: 80,
            headerAttributes: {style: "text-align:center"},
            attributes: {style: "white-space:nowrap;text-overflow:ellipsis;text-align:center;"},
        },
        {
            title: "分组行2",
            field: "line2",
            width: 120,
            headerAttributes: {style: "text-align:center"},
            attributes: {style: "white-space:nowrap;text-overflow:ellipsis;text-align:center;"},
            editor: function (container, options) {//单元格只读
                $('<span data-bind="text:line2"></span>').appendTo(container);
            }
        }
    ]
}

b. 分组合并表头

/**
 * 合并表头
 * @param titleName 合并列名
 * @param colSpanCount 合并数
 * @constructor
 */
function GridHeaderSpan(titleName, colSpanCount) {
	var index = 1
	$('#grid thead th').each(function (i, v) {
		if ($(v).attr('data-title') == titleName) {
			if (index == 1) {
				$(v).attr('colspan', colSpanCount);
				$(v).css('text-align', 'center');
			} else {
				$(v).hide();
			}
			index++;
		}
	});
}

四. 滚动条控制

grid滚动条样式

/* 设置滚动条的样式 */
::-webkit-scrollbar {
    width: 8px;
    height: 8px;
}

/* 滚动槽 */
::-webkit-scrollbar-track {
    -webkit-box-shadow: inset 0 0 8px grey;
}

/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
    background: #CCCCCC;
    -webkit-box-shadow: inset 0 0 8px grey;
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

琳妹妹的辉哥哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值