随着MVC模式在Web应用系统的广泛应用,我们也越来越能体会到MVC模式在Web系统中的应用使后续对程序的修改和扩展变得简单化,并且使程序某一部分的重复利用成为可能。Spread控件不仅可以应用在传统的.NET Web Forms 系统中,当然,Spread在MVC模式的系统中也可以得到完美的应用。下面,我们就通过实例来学习Spread是如何在ASP.NET MVC3系统中得到应用的。
效果截图
6.在Index.cshtml声明Mvc命名空间和实体模型@model IEnumerable<SpreadMVC3Applications.Models.User> @using FarPoint.Mvc.Spread 复制代码7.打开HomeController.cs添加如下代码,完成Spread在Mvc中添加、删除以及更新数据的操作。using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using SpreadMVC3Applications.Models; using FarPoint.Mvc.Spread; namespace SpreadMVC3Applications.Controllers { public class HomeController : Controller { UserDBEntities db1 = new UserDBEntities(); public ActionResult Index() { return View(db1.User.ToList()); } void User_Load(object sender, EventArgs e) { FpSpread spread = (FpSpread)sender; spread.UpdateCommand += new FarPoint.Web.Spread.SpreadCommandEventHandler(spread_UpdateCommand); spread.DeleteCommand += new FarPoint.Web.Spread.SpreadCommandEventHandler(spread_DeleteCommand); spread.UpdateCommand +=new FarPoint.Web.Spread.SpreadCommandEventHandler(spread_UpdateCommand); } void spread_InsertCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e) { FpSpread spread = ((FpSpread)sender); User cs = new Models.User(); cs.ID = Convert.ToInt32(e.EditValues[0]); cs.Name = e.EditValues[1].ToString(); cs.City = e.EditValues[2].ToString(); db1.User.AddObject(cs); db1.SaveChanges(); RedirectToAction("Index"); } void spread_DeleteCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e) { FpSpread spread = ((FpSpread)sender); int id = (int)e.SheetView.Cells[(int)e.CommandArgument, 0].Value; User user = db1.User.Single(c => c.ID == id); db1.User.DeleteObject(user); db1.SaveChanges(); spread.SaveChanges(); RedirectToAction("Index"); } void spread_UpdateCommand(object sender, FarPoint.Web.Spread.SpreadCommandEventArgs e) { int id = (int)e.SheetView.Cells[(int)e.CommandArgument, 0].Value; User user = db1.User.Single(c => c.ID == id); System.Reflection.PropertyInfo[] infos = User.GetType().GetProperties(); for (int i = 1; i < e.EditValues.Count; i++) { if (e.EditValues[i].ToString() != "System.Object") { infos.Where(a => a.Name == e.SheetView.Columns[i].DataField).ToList<System.Reflection.PropertyInfo>()[0].SetValue(user, e.EditValues[i], null); } } db1.SaveChanges(); RedirectToAction("Index"); } } } 复制代码8.打开Global.asax.cs, 在Application_Start方法中添加如下代码:FarPoint.Mvc.Spread.MvcSpreadVirtualPathProvider.AppInitialize(); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); 复制代码9.在Licenses.licx file中添加Spread信息,如下:FarPoint.Web.Spread.FpSpread, FarPoint.Web.Spread, Version=6.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457 FarPoint.Mvc.Spread.FpSpread, FarPoint.Mvc.Spread, Version=6.0.4005.2010, Culture=neutral, PublicKeyToken=327c3516b1b18457 复制代码10.现在我们运行项目就可以看到结果啦。
(2.16 M, 下载次数:20)
关于葡萄城
葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。
葡萄城热门产品
活字格
打通现有软件,快速定制面向未来的个性化应用
SpreadJS
可嵌入您系统的在线Excel的纯前端表格控件
Wyn商业智能
可与企业自有系统深度集成,增强数据分析的 BI 工具