.Net Mvc4 Kendo Grid Demo
- 看见人家项目中用到了Kendo Grid组件,感觉不错,于是就没有压制住自己内心的好奇心!嘿嘿,咱们开始吧,步骤很简单,理解起来也很容易。
- 首先我们创建一个空的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()),
UserName = cn,
RegDate = DateTime.Today.AddDays(-rnd.Next()),
Points = rnd.Next()
}).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
.Net Mvc4 Kendo Grid Demo的更多相关文章
- Kendo Grid:将Edit button 移到grid view 得顶部
因为kendo grid 得toolbar 里不包括Edit button,所以我们要先用template 创建一个自定义得edit button,然后再对这个button实现edit 功能. < ...
- Kendo Grid控件中将枚举值转为枚举名显示
我们在开发过程中经常会遇到需要将枚举值转换成名称进行显示的情况.如下我们有这样一个数据源对象: var users = [ {id: 1, name: "similar1", st ...
- kendo grid应用经验总结
学习网址 https://docs.telerik.com/kendo-ui/controls/editors/dropdownlist/overview https://demos.telerik. ...
- kendo grid Hierarchy
Hierarchy grid中不能使用下面的这段代码,会造成传值传不过来,把下面的代码注释,不用models,直接用form表单传值就行,暂时没搞明白为什么 //parameterMap: funct ...
- kendo Grid json解析的问题
新建立了一个 页面,在grid中使用了dropdownlist,总是显示companyId is not defined ,以前这个问题解决过了,忘记记录了额,现在不知道怎么办了 下面的这个解决方法是 ...
- kendo grid输入框验证方法
$("#grid").kendoGrid({ dataSource: dataSrc, //toolbar: ["save", "取消"], ...
- extjs grid demo
Ext.onReady(function () { var store = Ext.create('Ext.data.Store', { fields: ['id', 'name', 'account ...
- kendo grid dropdownlist 联动 cascading
之前是无法联动的 后来将html页面中的 //$('<input required data-text-field="CompanyName" data-value-fiel ...
- kendo grid结合ajax功能
我感觉使用ajax结合表格绑定效率更好一些,可以灵活的控制点击前后的事件,现在grid前后的事件我不能控制
随机推荐
- 普林斯顿大学算法课 Algorithm Part I Week 3 求第K大数 Selection
问题 给定N个元素的数组,求第k大的数. 特例当k=0时,就是求最大值,当k=N-1时,就是求最小值. 应用顺序统计求top N排行榜 基本思想 使用快速排序方法中的分区思想,使得a[k]左侧没有更小 ...
- 顺便说一下$.each()函数:
$.each()函数不同于JQuery对象的each()方法,它是一个全局函数,不操作JQuery对象,而是以一个数组或者对象作为第1个参数,以一个回调函数作为第2个参数.回调函数拥有两个参数:第1个 ...
- 抽象工厂模式firstones
与工厂方法模式的区别是工厂子类中会创建出同一类型的不同产品对象.工厂方法模式则工厂子类中只是创建一种具体的产品对象 结构: 产品基类:子类继承的虚函数方法 具体产品子类:实现该产品功能 工厂基类:工厂 ...
- Twitter 新一代流处理利器——Heron 论文笔记之Heron架构
Twitter 新一代流处理利器--Heron 论文笔记之Heron架构 标签(空格分隔): Streaming-process realtime-process Heron Architecture ...
- Mustache学习
Mustache是基于JavaScript的一款模版Web引擎,Web 模板引擎是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,通常是标准的 HTML 文档. 一.Musta ...
- mvc 设置默认页技巧
打开网址:http://xxxx.com自动跳转==>http://xxx.com/home/index 设置route入口: routes.MapRoute( name: "Main ...
- C# - ADO.Net 调用存储过程
------------------------存储过程调用,创建DataSet:----------------------//数据库连接字符串string connStr = @"Dat ...
- 指针和const
将指针参数声明为指向常量数据的指针有两条理由: 这样可以避免由于无意间修改数据而导致的编译错误. 使用const使得函数能够处理const和非const实参,否则将只能接收非const数据. ...
- perl 打开和关闭文件
#!/usr/bin/perl -w use strict; #print "please input a string\n"; #my $line = <STDIN> ...
- Linux学习之进程管理
|-进程管理 进程常用命令 |- w查看当前系统信息 |- ps进程查看命令 |- kill终止进程 |- 一个存放内存中的特殊目录/p ...


