在ASP.NET MVC 3中使用Spread

本文讲述如何在ASP.NET MVC 3中使用Spread

发布于 2012/11/14 00:00

随着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家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

活字格低代码二维码

关注“活字格低代码”

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态