赞
踩
CSDN上有一个引路蜂软件的博客,里面有kendo ui的一般用法。它那里讲过的我这里就不再继续重复。
由于框架设计的需要,后台使用spring,前台使用kendo ui构建页面。为了加快快发速度以及底层兼容性,义不容辞的,继续选择了hibernate作为数据库沟通的桥梁。spring方面的例子全网就更多了,主要采用spring注解方式的MVC配置,使用json数据映射器。
经过初步的使用,发现kendo ui的设计极为强大,其MVVM的特性与spring的MVC特性结合,配合hibernate开发系统时,如列表呈现之类的,几乎都不需要写什么查询代码。
另外其中文化已经有人托管了文件在GitHub,直接配置后即可使用。对于日期的格式化的问题,经过本人多次尝试,也在汉化文件中通过简单设置,解决全局日期设置问题。
下面就来详细介绍一下,如何达到上述效果:
一、中文化
本人的习惯,拿到不管是哪里的控件,第一是看demo炫不炫,代码量如何;第二就是看国际化支持,能不能支持中文语言字典文件之类的汉化,如果不能全局直接设置汉化,而是要逢用必改的话,那就一切免谈。kendo ui是过了我这两关。下面说下具体做法。
去下面这个网址,下载kendo.messages.zh-CN.js文件,就是kendo ui的中文国际化文件。
https://github.com/telerik/kendo-ui-core/tree/master/src/messages
内容如下:
- /* FlatColorPicker messages */
-
- if (kendo.ui.FlatColorPicker) {
- kendo.ui.FlatColorPicker.prototype.options.messages =
- $.extend(true, kendo.ui.FlatColorPicker.prototype.options.messages,{
- "apply": "确定",
- "cancel": "取消"
- });
- }
-
- /* ColorPicker messages */
-
- if (kendo.ui.ColorPicker) {
- kendo.ui.ColorPicker.prototype.options.messages =
- $.extend(true, kendo.ui.ColorPicker.prototype.options.messages,{
- "apply": "确定",
- "cancel": "取消"
- });
- }
-
- /* ColumnMenu messages */
-
- if (kendo.ui.ColumnMenu) {
- kendo.ui.ColumnMenu.prototype.options.messages =
- $.extend(true, kendo.ui.ColumnMenu.prototype.options.messages,{
- "sortAscending": "升序",
- "sortDescending": "降序",
- "filter": "过滤",
- "columns": "列",
- "done": "完成",
- "settings": "列设置",
- "lock": "锁定",
- "unlock": "解除锁定"
- });
- }
-
- /* Editor messages */
-
- if (kendo.ui.Editor) {
- kendo.ui.Editor.prototype.options.messages =
- $.extend(true, kendo.ui.Editor.prototype.options.messages,{
- "bold": "粗体",
- "italic": "斜体",
- "underline": "下划线",
- "strikethrough": "删除线",
- "superscript": "上标",
- "subscript": "下标",
- "justifyCenter": "居中",
- "justifyLeft": "左对齐",
- "justifyRight": "右对齐",
- "justifyFull": "两端对齐",
- "insertUnorderedList": "插入无序列表",
- "insertOrderedList": "插入有序列表",
- "indent": "增加缩进",
- "outdent": "减少缩进",
- "createLink": "插入链接",
- "unlink": "移除链接",
- "insertImage": "插入图片",
- "insertFile": "插入文件",
- "insertHtml": "插入 HTML",
- "viewHtml": "查看 HTML",
- "fontName": "选择字体",
- "fontNameInherit": "(继承的字体)",
- "fontSize": "选择字号",
- "fontSizeInherit": "(继承的字号)",
- "formatBlock": "格式化块",
- "formatting": "格式化",
- "foreColor": "颜色",
- "backColor": "背景色",
- "style": "风格",
- "emptyFolder": "文件夹为空",
- "uploadFile": "上传",
- "orderBy": "排序条件:",
- "orderBySize": "大小",
- "orderByName": "名字",
- "invalidFileType": "选中的文件 \"{0}\" 非法,支持的文件类型为 {1}。",
- "deleteFile": '您确定要删除 \"{0}\"?',
- "overwriteFile": '当前文件夹已存在文件名为 \"{0}\" 的文件,您确定要覆盖么?',
- "directoryNotFound": "此文件夹未找到",
- "imageWebAddress": "图片地址",
- "imageAltText": "替代文本",
- "imageWidth": "宽度 (px)",
- "imageHeight": "高度 (px)",
- "fileWebAddress": "文件地址",
- "fileTitle": "标题",
- "linkWebAddress": "链接地址",
- "linkText": "链接文字",
- "linkToolTip": "链接提示",
- "linkOpenInNewWindow": "在新窗口中打开",
- "dialogUpdate": "上传",
- "dialogInsert": "插入",
- "dialogButtonSeparator": "或",
- "dialogCancel": "取消",
- "createTable": "创建表格",
- "addColumnLeft": "左侧添加列",
- "addColumnRight": "右侧添加列",
- "addRowAbove": "上方添加行",
- "addRowBelow": "下方添加行",
- "deleteRow": "删除行",
- "deleteColumn": "删除列"
- });
- }
-
- /* FileBrowser messages */
-
- if (kendo.ui.FileBrowser) {
- kendo.ui.FileBrowser.prototype.options.messages =
- $.extend(true, kendo.ui.FileBrowser.prototype.options.messages,{
- "uploadFile": "上传",
- "orderBy": "排序条件",
- "orderByName": "名称",
- "orderBySize": "大小",
- "directoryNotFound": "此文件夹未找到",
- "emptyFolder": "文件夹为空",
- "deleteFile": '您确定要删除 \"{0}\"?',
- "invalidFileType": "选中的文件 \"{0}\" 非法,支持的文件类型为 {1}。",
- "overwriteFile": "当前文件夹已存在文件名为 \"{0}\" 的文件,您确定要覆盖么?",
- "dropFilesHere": "拖拽要上传的文件到此处",
- "search": "搜索"
- });
- }
-
- /* FilterMenu messages */
-
- if (kendo.ui.FilterMenu) {
- kendo.ui.FilterMenu.prototype.options.messages =
- $.extend(true, kendo.ui.FilterMenu.prototype.options.messages,{
- "info": "显示符合以下条件的行",
- "isTrue": "为真",
- "isFalse": "为假",
- "filter": "过滤",
- "clear": "清除",
- "and": "并且",
- "or": "或",
- "selectValue": "-选择-",
- "operator": "运算符",
- "value": "值",
- "cancel": "取消"
- });
- }
-
- /* Filter menu operator messages */
-
- if (kendo.ui.FilterMenu) {
- kendo.ui.FilterMenu.prototype.options.operators =
- $.extend(true, kendo.ui.FilterMenu.prototype.options.operators,{
- "string": {
- "eq": "等于",
- "neq": "不等于",
- "startswith": "开头为",
- "contains": "包含",
- "doesnotcontain": "不包含",
- "endswith": "结尾为"
- },
- "number": {
- "eq": "等于",
- "neq": "不等于",
- "gte": "大于等于",
- "gt": "大于",
- "lte": "小于等于",
- "lt": "小于"
- },
- "date": {
- "eq": "等于",
- "neq": "不等于",
- "gte": "大于等于",
- "gt": "大于",
- "lte": "小于等于",
- "lt": "小于"
- },
- "enum": {
- "eq": "等于",
- "neq": "不等于"
- }
- });
- }
-
-
- /* Gantt messages */
-
- if (kendo.ui.Gantt) {
- kendo.ui.Gantt.prototype.options.messages =
- $.extend(true, kendo.ui.Gantt.prototype.options.messages,{
- "views": {
- "day": "日",
- "week": "周",
- "month": "月"
- },
- "actions": {
- "append": "添加任务",
- "addChild": "添加子任务",
- "insertBefore": "添加到前面",
- "insertAfter": "添加到后面"
- }
- });
- }
-
- /* Grid messages */
-
- if (kendo.ui.Grid) {
- kendo.ui.Grid.prototype.options.messages =
- $.extend(true, kendo.ui.Grid.prototype.options.messages,{
- "commands": {
- "cancel": "取消",
- "canceledit": "取消",
- "create": "新增",
- "destroy": "删除",
- "edit": "编辑",
- "save": "保存",
- "select": "选择",
- "update": "更新"
- },
- "editable": {
- "cancelDelete": "取消",
- "confirmation": "确定要删除吗?",
- "confirmDelete": "删除"
- }
- });
- }
-
- /* Groupable messages */
-
- if (kendo.ui.Groupable) {
- kendo.ui.Groupable.prototype.options.messages =
- $.extend(true, kendo.ui.Groupable.prototype.options.messages,{
- "empty": "托拽列标题到此处按列组合显示"
- });
- }
-
- /* NumericTextBox messages */
-
- if (kendo.ui.NumericTextBox) {
- kendo.ui.NumericTextBox.prototype.options =
- $.extend(true, kendo.ui.NumericTextBox.prototype.options,{
- "upArrowText": "增加",
- "downArrowText": "减少"
- });
- }
-
- /* Pager messages */
-
- if (kendo.ui.Pager) {
- kendo.ui.Pager.prototype.options.messages =
- $.extend(true, kendo.ui.Pager.prototype.options.messages,{
- "display": "显示条目 {0} - {1} 共 {2}",
- "empty": "没有可显示的记录。",
- "page": "页",
- "of": "共 {0}",
- "itemsPerPage": "每页",
- "first": "首页",
- "last": "末页",
- "next": "下一页",
- "previous": "上一页",
- "refresh": "刷新",
- "morePages": "更多..."
- });
- }
-
- /* PivotGrid messages */
-
- if (kendo.ui.PivotGrid) {
- kendo.ui.PivotGrid.prototype.options.messages =
- $.extend(true, kendo.ui.PivotGrid.prototype.options.messages,{
- "measureFields": "拖放数据字段于此",
- "columnFields": "拖放列字段于此",
- "rowFields": "拖放行字段于此"
- });
- }
-
- /* RecurrenceEditor messages */
-
- if (kendo.ui.RecurrenceEditor) {
- kendo.ui.RecurrenceEditor.prototype.options.messages =
- $.extend(true, kendo.ui.RecurrenceEditor.prototype.options.messages,{
- "frequencies": {
- "never": "从不",
- "hourly": "每小时",
- "daily": "每天",
- "weekly": "每周",
- "monthly": "每月",
- "yearly": "每年"
- },
- "hourly": {
- "repeatEvery": "重复周期: ",
- "interval": " 小时"
- },
- "daily": {
- "repeatEvery": "重复周期: ",
- "interval": " 天"
- },
- "weekly": {
- "interval": " 周",
- "repeatEvery": "重复周期: ",
- "repeatOn": "重复于:"
- },
- "monthly": {
- "repeatEvery": "重复周期: ",
- "repeatOn": "重复于:",
- "interval": " 月",
- "day": "日期"
- },
- "yearly": {
- "repeatEvery": "重复周期: ",
- "repeatOn": "重复于: ",
- "interval": " 年",
- "of": " 月份: "
- },
- "end": {
- "label": "截止时间:",
- "mobileLabel": "截止时间",
- "never": "从不",
- "after": "重复 ",
- "occurrence": " 次后",
- "on": "止于 "
- },
- "offsetPositions": {
- "first": "第一",
- "second": "第二",
- "third": "第三",
- "fourth": "第四",
- "last": "最后"
- },
- "weekdays": {
- "day": "天",
- "weekday": "工作日",
- "weekend": "周末"
- }
- });
- }
-
-
- /* Scheduler messages */
-
- if (kendo.ui.Scheduler) {
- kendo.ui.Scheduler.prototype.options.messages =
- $.extend(true, kendo.ui.Scheduler.prototype.options.messages,{
- "today": "今天",
- "save": "保存",
- "cancel": "取消",
- "destroy": "删除",
- "deleteWindowTitle": "删除事件",
- "ariaSlotLabel": "选择从 {0:t} 到 {1:t}",
- "ariaEventLabel": "{0} on {1:D} at {2:t}",
- "views": {
- "day": "日",
- "week": "周",
- "workWeek": "工作日",
- "agenda": "日程",
- "month": "月"
- },
- "recurrenceMessages": {
- "deleteWindowTitle": "删除周期条目",
- "deleteWindowOccurrence": "删除当前事件",
- "deleteWindowSeries": "删除序列",
- "editWindowTitle": "修改周期条目",
- "editWindowOccurrence": "修改当前事件",
- "editWindowSeries": "修改序列"
- },
- "editor": {
- "title": "标题",
- "start": "起始",
- "end": "终止",
- "allDayEvent": "全天事件",
- "description": "描述",
- "repeat": "重复",
- "timezone": " ",
- "startTimezone": "起始时区",
- "endTimezone": "终止时区",
- "separateTimezones": "使用独立的起始和终止时区",
- "timezoneEditorTitle": "时区",
- "timezoneEditorButton": "时区",
- "timezoneTitle": "选择时区",
- "noTimezone": "无",
- "editorTitle": "事件"
- }
- });
- }
-
- /* Slider messages */
-
- if (kendo.ui.Slider) {
- kendo.ui.Slider.prototype.options =
- $.extend(true, kendo.ui.Slider.prototype.options,{
- "increaseButtonTitle": "增加",
- "decreaseButtonTitle": "减少"
- });
- }
-
- /* TreeView messages */
-
- if (kendo.ui.TreeView) {
- kendo.ui.TreeView.prototype.options.messages =
- $.extend(true, kendo.ui.TreeView.prototype.options.messages,{
- "loading": "加载中...",
- "requestFailed": "加载失败",
- "retry": "重试"
- });
- }
-
- /* Upload messages */
-
- if (kendo.ui.Upload) {
- kendo.ui.Upload.prototype.options.localization =
- $.extend(true, kendo.ui.Upload.prototype.options.localization,{
- "select": "选择...",
- "cancel": "取消",
- "retry": "重试",
- "remove": "移除",
- "uploadSelectedFiles": "上传文件",
- "dropFilesHere": "拖拽要上传的文件到此处",
- "statusUploading": "上传中",
- "statusUploaded": "已上传",
- "statusWarning": "警告",
- "statusFailed": "失败",
- "headerStatusUploading": "上传...",
- "headerStatusUploaded": "完成"
- });
- }
-
- /* Validator messages */
-
- if (kendo.ui.Validator) {
- kendo.ui.Validator.prototype.options.messages =
- $.extend(true, kendo.ui.Validator.prototype.options.messages,{
- "required": "{0} 为必填项",
- "pattern": "{0} 非法",
- "min": "{0} 应该大于或等于 {1}",
- "max": "{0} 应该小于或等于 {1}",
- "step": "{0} 非法",
- "email": "{0} 不是合法的邮件地址",
- "url": "{0} 不是合法的URL",
- "date": "{0} 不是合法的日期"
- });
- }
-
- if(Date){
- Date.prototype.toISOString = function () {
- return kendo.toString(this, "yyyy-MM-dd HH:mm:ss");
- };
- }

注意最后的这个if(Date),是本人自己加的。主要是为了解决日期控件得到的时间date对象序列化的问题,date对象在向后台通信时,由于后台是spring的MVC框架,所以参数都通过kendo.stringify(XX)方法,或者JSON.stringify(XX)方法进行序列化,会默认调用Date对象的toISOString方法来格式化Date对象。通过在中文化文件中对Date对象的toISOString进行重写,从而达到兼容Spring后台MVC的目的,传递Date对象。格式与spring后台MVC json视图映射器的Date日期格式一直。这样才能保证Date类型对象,前后台传递没有问题。从gitHub下载的原始文件中不包含此内容。
有了国际化文件,到底怎么用呢?非常简单,直接在页面头部引入即可!
- <%@ page language="java" pageEncoding="UTF-8"%>
- <%@ page contentType="text/html;charset=UTF-8"%>
- <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
- <!DOCTYPE html >
- <html>
- <head>
- <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
- <link href="<c:url value='/resources/styles/kendo.common.min.css'/>"
- rel="stylesheet" />
- <link href="<c:url value='/resources/styles/kendo.rtl.min.css'/>"
- rel="stylesheet" />
- <link href="<c:url value='/resources/styles/kendo.uniform.min.css'/>"
- rel="stylesheet" />
-
-
- <script src="<c:url value='/resources/js/jquery.min.js' />"></script>
- <script src="<c:url value='/resources/js/kendo.web.min.js' />"></script>
- <script
- src="<c:url value='/resources/js/messages/kendo.messages.zh-CN.js' />"></script>
- <script
- src="<c:url value='/resources/js/cultures/kendo.culture.zh-CN.min.js' />"></script>
- <script>
- kendo.culture("zh-CN");
- </script>
-
- </head>
- ………………
- ………………
- </html>

汉化后的Gridview效果,如上述两图所示。效果非常好,并且是全局的,无忧无虑!敬请的使用吧!
再看看日历控件与Gridview的联合使用,并且配置进入Filter过滤器的效果:
中文化就是这么简单!
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。