.Net Mvc4 Kendo Grid Demo

  • 看见人家项目中用到了Kendo Grid组件,感觉不错,于是就没有压制住自己内心的好奇心!嘿嘿,咱们开始吧,步骤很简单,理解起来也很容易。


  1. 首先我们创建一个空的ASP.NET MVC 4 Web 应用程序,如下图 1所示:

   

                        图 1 新建MVC项目

  2. 接下来通过NuGet包管理工具来安装下面两个包:

  

  3. 然后开始我们的编码工作:

    -》首先是HomeController.cs文件:

public class HomeController : Controller
    {
        //
        // GET: /Home/

        public ActionResult Index()
        {
            return View();
        }
        public JsonResult Grid(KendoGridRequest request, string keywd)
        {
            var result = SimMemberInfo.SimuDataStore.Where(o => o.UserName.Contains(keywd));
            return Json(new KendoGrid<SimMemberInfo>(request, result));
        }
    }

    -》然后在Models文件下面新建一个SimMemberInfo类,具体代码如下:

public class SimMemberInfo
    {
        public string UserNo; //会员编号
        public string UserName; //会员名称
        public DateTime RegDate; //注册日期
        public int Points; //累积点数
        //模拟数据源
        public static List<SimMemberInfo> SimuDataStore = null;

        static SimMemberInfo()
        {
            Random rnd = new Random();
            //借用具名颜色名称来产生随机数据
            string[] colorNames = typeof(Color)
                .GetProperties(BindingFlags.Static | BindingFlags.Public)
                .Select(o => o.Name).ToArray();
            SimuDataStore =
                colorNames
                .Select(cn => new SimMemberInfo()
                {
                    UserNo = string.Format("C{0:00000}", rnd.Next(99999)),
                    UserName = cn,
                    RegDate = DateTime.Today.AddDays(-rnd.Next(1000)),
                    Points = rnd.Next(9999)
                }).ToList();
        }
    }

     -》Home控制器下面的Index action对应的视图:Index.cshtml文件:

@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
@section Scripts
{
    <style>
        body {
            font-size: 9pt;
        }

        #dvGrid {
            width: 1024px;
        }

        span.hi-lite {
            color: red;
        }

        #dvGrid th.k-header {
            text-align: center;
        }
    </style>
    <script>

        $(function () {
            //建立数据源对象
            var dataSrc = new kendo.data.DataSource({
                transport: {
                    read: {
                        //以下其实就是$.ajax的参数
                        type: "POST",
                        url: "/Home/Grid",
                        dataType: "json",
                        data: {
                            //额外传至后方的参数
                            keywd: function () {
                                return $("#tKeyword").val();
                            }
                        }
                    }
                },
                schema: {
                    //取出数据数组
                    data: function (d) { return d.data; },
                    //取出数据总笔数(计算页数用)
                    total: function (d) { return d.total; }
                },
                pageSize: 10,
                serverPaging: true,
                serverSorting: true
            });
            //JSON日期转换
            var dateRegExp = /^\/Date\((.*?)\)\/$/;
            window.toDate = function (value) {
                var date = dateRegExp.exec(value);
                return new Date(parseInt(date[1]));
            }
            $("#dvGrid").kendoGrid({
                dataSource: dataSrc,
                columns: [
                    { field: "UserNo", title: "会员编号" },
                    {
                        field: "UserName", title: "会员名称",
                        template: ‘#= "<span class=\\"u-name\\">" + UserName + "</span>" #‘
                    },
                    {
                        field: "RegDate", title: "加入日期",
                        template: ‘#= kendo.toString(toDate(RegDate), "yyyy/MM/dd")#‘
                    },
                    { field: "Points", title: "累积点数" },
                ],
                sortable: true,
                pageable: true,
                dataBound: function () {
                    //AJAX数据Bind完成后触发
                    var kw = $("#tKeyword").val();
                    //若有设关键词,做Highlight处理
                    if (kw.length > 0) {
                        var re = new RegExp(kw, "g");
                        $(".u-name").each(function () {
                            var $td = $(this);
                            $td.html($td.text()
                           .replace(re, "<span class=‘hi-lite‘>$&</span>"));
                        });
                    }
                }
            });
            //按下查询钮
            $("#bQuery").click(function () {
                //要求数据源重新读取(并指定切至第一页)
                dataSrc.read({ page: 1, skip: 0 });
                //Grid重新显示数据
                $("#dvGrid").data("kendoGrid").refresh();
            });
        });
    </script>
}
<div style="padding: 10px;">
    关键词:
    <input id="tKeyword" /><input type="button" value="查询" id="bQuery" />
</div>
<div id="dvGrid">
</div>

    -》Views - Shared文件夹下面的_Layout.cshtml:

<html>
<head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width" />
    <title>@ViewBag.Title</title>
    <link href="~/Content/kendo/2014.1.318/kendo.common.min.css" rel="stylesheet" />
    <link href="~/Content/kendo/2014.1.318/kendo.default.min.css" rel="stylesheet" />
</head>
<body>
    @RenderBody()

    <script src="~/Scripts/kendo/2014.1.318/jquery.min.js"></script>
    <script src="~/Scripts/kendo/2014.1.318/kendo.web.min.js"></script>
    @RenderSection("scripts", required: false)
</body>
</html>

  这样我们的小练习就出来!我的项目文件结构图如下:

    

  :: 代码下载:http://pan.baidu.com/s/1eRNd4Ts

  参考文档:http://www.cnblogs.com/shanyou/archive/2012/06/22/2558609.html

  

时间: 2024-09-28 21:17:08

.Net Mvc4 Kendo Grid Demo的相关文章

Kendo Grid:将Edit button 移到grid view 得顶部

因为kendo grid 得toolbar 里不包括Edit button,所以我们要先用template 创建一个自定义得edit button,然后再对这个button实现edit 功能. <script id="template" type="text/x-kendo-template">/'      <a class="k-button" href="javascript:void(0)" oncl

Kendo Grid控件中将枚举值转为枚举名显示

我们在开发过程中经常会遇到需要将枚举值转换成名称进行显示的情况.如下我们有这样一个数据源对象: var users = [ {id: 1, name: "similar1", status: 1}, {id: 2, name: "similar2", status: 2} ]; 其中字段 status 代表的是用户的状态, 1 代表 “可用”, 2 代表 “禁用”.我们使用 kendo grid 常规配置如下: columns: [ { field: "i

kendo grid的过滤filter

kendo是一套强大方便的前端解决方案,而且新版还可以与angularjs集成,项目中就使用了一些kendo的控件,比如grid表格. grid提供了过滤功能,但中文网站缺少这方面的资料,在这里整理一下kendo grid怎么使用过滤. 下面代码包含了grid的过滤所有涉及的所有设置,以这个完整的例子,加上注释讲解其使用方法: 1 <div id="grid"></div> 2 <script> 3 $("#grid").kend

Kendo Grid editing 自定义验证报错提示

Kendo UI是一个强大的框架用于快速HTML5 UI开发.基于最新的HTML5.CSS3和JavaScript标准. Kendo UI包含了开发现代JavaScript开发所需要的所有一切,包括:强大的数据源,通用的拖拉(Drag-and-Drop)功能,模板,和UI控件. 今天开始就对项目里使用的kendo控件技巧做记录,有个别错误希望大家不吝指出,谢谢. 首先就是Grid控件编辑是,验证错误时弹出的提示居然是中文加字段名字,如下图.抓狂啊!!请问这样的低级的提示能拿得出手吗? 这样的提示

kendo grid过滤

$("#grid").kendoGrid({ 4 columns: [ 5 { 6 field: "name", 7 //filterable对象,过虑功能的总开关,值为true时开启,默认值为true,只针对当前列 8 filterable: { 9 //过滤显示的单元格,只有当mode的值为row时才可用 10 cell: { 11 enabled: true,//是否可用的开关 12 13 //自动完成数据源 14 dataSource: new kendo.

kendo grid 添加序号

columns.Bound(m => m.Id).ClientTemplate("#= getRowNumber() #").Title("序号").Width(80); <script> var rowNumber = 0; function onDataBinding() { var grid = $('#ReportLogGrid').data('kendoGrid'); rowNumber = (grid.dataSource.page()

(2)kendo UI使用基础介绍与问题整理——Grid问题/demo、参数、data、filter等

项目中用到最多的组件是Grid,与它相关的问题也是最多的,下面我会成几个文章来说明. 这篇文章会介绍一些相关的常用参数. 一.demo及基本的参数说明 简单代码范例demo: <div id="grid"></div> <script> $(document).ready(function() { var data=[{ id:"1", cause:"包装破损", quantity:"5",

Kendo UI Grid 模型绑定

开篇 接触 Asp.net MVC 时间较长的童鞋可能都会了解过模型绑定(Model Binding),而且在一些做 Web 项目的公司或是Team面试中也经常会被问到.项目中有很多 Action 中都使用了自定义的模型绑定,但是业务逻辑太过复杂不适合做为例子与大家分享,而今天在做一个 Kendo UI 的功能时觉得可以用 Kendo UI 做为例子与大家分享与探讨一个典型的 Model Binding 的过程. 写的比较随性,欢迎大家讨论及拍砖! 背景介绍 Kendo UI: 它是一个非常出名

kendo ui grid 汉化

加入js引用 <link href="http://cdn.kendostatic.com/2014.2.716/styles/kendo.common.min.css" rel="stylesheet" /> <link href="http://cdn.kendostatic.com/2014.2.716/styles/kendo.default.min.css" rel="stylesheet" /&g