WebGrid 在asp.net mvc中的使用和理解(译)
1:思路
webgrid就是表格,一行行记录,代表一个个模型,因此,我们只需要在models文件夹建立模型,在控制器生成模型列表,把列表作为模型传入视图(或者绑定强类型视图,这个类型至少大于等于此模型列表),然后通过GetHtml(Model,propetiesList)即可. 非常简单.
下面对webgrid的一些属性和方法进行介绍(这在设置表格的行列字段属性分页排序等特别适用)
AjaxUpdateCallback:异步操作完成后的回调函数
AjaxUpdateContainerId:更新所包括的元素
CanSort:是否支持排序
ColumnNames:列的名称列表,类似数据库字段列表,通常我们使用List<string>类型
HasSelection:判定行的选中
IsAjaxEnabled Returns a value that indicates whether the WebGrid instance can use Ajax calls to refresh the display
类似还有行数,默认选中,分页,每页多少行等等属性,具体参考msdn即可.
请参考原文,感谢作者.
通过和原文比较,我觉得我的做法也许更好(原文使用的是弱类型视图,然后在视图中去new 模型或模型列表对象)
我是使用强类型视图,action可以直接传过来,viewbag也可以传过来,视图中也可以new
cshtml文件如下:
@{ Layout = null; }
<!DOCTYPE html>
<html> <head> <title>WebgridSample</title> <script src="../../Scripts/jquery-1.7.1.min.js" type="text/javascript"></script> <style type="text/css"> .webGrid { margin: 4px; border-collapse: collapse; width: 500px; background-color:#FCFCFC;} .header { background-color: #C1D4E6; font-weight: bold; color: #FFF; } .webGrid th, .webGrid td { border: 1px solid #C0C0C0; padding: 5px; } .alt { background-color: #E4E9F5; color: #000; } .gridHead a:hover {text-decoration:underline;} .description { width:auto} .select{background-color: #389DF5} </style> </head> <body> @{ WebGridSampleApplication.Models.Product product = new WebGridSampleApplication.Models.Product(); }
@{
var grid = new WebGrid(Model, canPage: true, rowsPerPage: 5, selectionFieldName: "selectedRow",ajaxUpdateContainerId: "gridContent");
grid.Pager(WebGridPagerModes.NextPrevious);}
<div id="gridContent">
@grid.GetHtml(tableStyle: "webGrid",
headerStyle: "header",
alternatingRowStyle: "alt",
selectedRowStyle: "select",
columns: grid.Columns(
grid.Column("Id", format: (i) => i.GetSelectLink(i.Id)),
grid.Column("Name", " Name", (i) => i.GetSelectLink(i.Name)),
grid.Column("Description", "Description", style: "description"),
grid.Column("Quantity", "Quantity")
))
@if (grid.HasSelection) { product = (WebGridSampleApplication.Models.Product)grid.Rows[grid.SelectedIndex].Value; <b>Id</b> @product.Id<br /> <b>Name</b> @product.Name<br /> <b>Description</b> @product.Description<br /> <b>Quantity</b> @product.Quantity<br /> } </div> </body> </html>
模型文件如下:
using System; using System.Collections.Generic; using System.Linq; using System.Web;
namespace WebGridSampleApplication.Models { public class Product { public string Id { get; set; } public string Name { get; set; } public string Description { get; set; } public long Quantity { get; set; } } }
控制器文件如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Collections.ObjectModel;
using WebGridSampleApplication.Models;
namespace WebGridSampleApplication.Controllers { public class InventoryController : Controller { public ActionResult WebgridSample() {
ObservableCollection<Product> inventoryList = new ObservableCollection<Product>(); inventoryList.Add(new Product { Id = "P101", Name = "Computer", Description = "All type of computers", Quantity = 800 }); inventoryList.Add(new Product { Id = "P102", Name = "Laptop", Description = "All models of Laptops", Quantity = 500 }); inventoryList.Add(new Product { Id = "P103", Name = "Camera", Description = "Hd cameras", Quantity = 300 });
inventoryList.Add(new Product { Id = "P104", Name = "Mobile", Description = "All Smartphones", Quantity = 450 });
inventoryList.Add(new Product { Id = "P105", Name = "Notepad", Description = "All branded of notepads", Quantity = 670 });
inventoryList.Add(new Product { Id = "P106", Name = "Harddisk", Description = "All type of Harddisk", Quantity = 1200 });
inventoryList.Add(new Product { Id = "P107", Name = "PenDrive", Description = "All type of Pendrive", Quantity = 370 });
return View(inventoryList);
}
}
}
hope this would help you
转载于:https://www.cnblogs.com/aobama/p/4377279.html
WebGrid 在asp.net mvc中的使用和理解(译)相关推荐
- 通过源代码研究ASP.NET MVC中的Controller和View(二)
通过源代码研究ASP.NET MVC中的Controller和View(一) 在开始之前,先来温习下上一篇文章中的结论(推论): IView是所有HTML视图的抽象 ActionResult是Cont ...
- 在Asp.Net MVC中实现RequiredIf标签对Model中的属性进行验证
在Asp.Net MVC中可以用继承ValidationAttribute的方式,自定制实现RequiredIf标签对Model中的属性进行验证 具体场景为:某一属性是否允许为null的验证,要根据另 ...
- ASP.NET MVC中你必须知道的13个扩展点
ScottGu在其最新的博文中推荐了Simone Chiaretta的文章13 ASP.NET MVC extensibility points you have to know,该文章为我 ...
- Asp.net mvc中的Ajax处理
在Asp.net MVC中的使用Ajax, 可以使用通用的Jquery提供的ajax方法,也可以使用MVC中的AjaxHelper. 这篇文章不对具体如何使用做详细说明,只对于在使用Ajax中的一些需 ...
- 在 ASP.NET MVC 中使用 Chart 控件
在 .NET 3.5 的时候,微软就提供了一个 Chart 控件,网络上有大量的关于在 VS2008 中使用这个控件的文章,在 VS2010 中,这个控件已经被集成到 ASP.NET 4.0 中,可以 ...
- 在ASP.NET MVC中使用IIS级别的URL Rewrite
在ASP.NET MVC中使用IIS级别的URL Rewrite 原文 在ASP.NET MVC中使用IIS级别的URL Rewrite 大约一年半前,我在博客上写过一系列关于URL Rewrite的 ...
- ASP.NET MVC中实现多个按钮提交的几种方法
有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能,比如一个简单的审批功能. 如果是用webform那不需要讨论,但asp.net mvc中一个表单只能提交到一个Action处理,相对比较 ...
- 在asp.net mvc中使用PartialView返回部分HTML段
问题链接: MVC怎样实现异步调用输出HTML页面 该问题是个常见的 case, 故写篇文章用于提示新人. 在asp.net mvc中返回View时使用的是ViewResult,它继承自ViewRes ...
- 在Asp.Net MVC中使用ModelBinding构造Array、List、Collection以及Dictionary
在asp.net mvc中,我们可以在html表单中使用特定的格式传递参数,从而通过model binder构造一些集合类型. 第一种方式 public ActionResult Infancy(Pe ...
- 在 asp.net mvc中的简单分页算法 (续)
在上个月发表的 http://www.cnblogs.com/bwangel/p/mvcpager.html 中,讨论了一下asp.net mvc中结合Entity framework框架进行的分页, ...
最新文章
- C/S和B/S两种架构区别与优缺点分析
- Input中实现对身份证的验证
- 关于金钱的几个小故事(r12笔记第8天)
- 47.QT-QChart之曲线图,饼状图,条形图使用
- 从欧拉公式看希尔伯特变换
- java_security之base64原理解析以及三种代码的实现方式
- linux环境知识点备忘录
- 身为程序员的我们......
- 深度学习超参数简单理解:learning rate,weight decay和momentum
- oppo k10 Pro和iqooneo6se哪个性能更强 哪个值得买呢
- 在 Windows XP Embedded 中使用 Enhanced Write Filter (EWF)[微软影子系统]
- 益聚星荣:B站做支付,虽迟但到
- 如何更改微信小程序二维码物料颜色
- [转]成功=狼+狐狸+豹子
- 2012年中国本土IC设计企业排名TOP10
- Vmware搭建软路由教程(Openwrt)
- 通信工程师传输与接入ATM网络组成和接口
- android 页面默认不弹软键盘_Android避免进入页面自动弹出软键盘(真正好用)
- 有软件负载均衡,也有硬件负载均衡,选择哪个?
- IDC机房维护的成本,和托管的成本对比
热门文章
- CCNA(高级实验)
- 袖珍计算器c语言设计源码,VB程序题:编一模拟袖珍计算器的完整程序,界面如下图所示。要求:输入两个操作数和一个操作符,根据操作符决定所做的运算。 VB源码 龚沛曾...
- 安装qt qmake assistant 错误:could not find a Qt installation of ''
- 在eclipse中建立java项目
- 电力电子仿真软件对比分析
- 最详细的Android SDK下载安装及配置教程
- 计算机字体原理,字体科普文:认识最基础的字体结构 -电脑资料
- mybatis代码生成器
- java sigar cpu使用率_sigar相关-单个进程占CPU百分比
- 台式计算机 行业标准,GBT 9813.3-2017 计算机通用规范 第3部分:服务器国家标准...