ASP.NET开发,简化与封装

微软的ASP.NET的开发,就是面向对象的编程,当然前端也能体验至面向对象的话,使用Web控件也必须的。

任一控件,我们均可以在后端.aspx.cs或.aspx.vb程序中new一个对象出来。

很多场合里,在开发ASP.NET开发中,后端与前端交互,我们使用控件确实能方便与快捷互通。

本篇所涉及的内容以html markup标签与javascript(或jQuery)无关,因为演示的是Web控件应用。Insus.NET经常会针对开发的应用程序,写一些常用或是特定的对象或是控件。在一起开发的团队的能句方便用使用,能得到客户需求的功能与效果。

开发这些对象或是控件,也并非一开始就能写得出来,均是经过一系列编程之后,再次review或是优化的结果。

举个例子来说明,先在SQL Server数据库中,创建一个数据表,如[dbo].[UserInfo]:

对这个表,添加几笔记录:

写一个存储过程,是获取刚才添加的所有记录:

OK,数据库层已经设计好了,我们去ASP.NET网站写程序,需要把这些数据呈现于网页上。
逻辑层就使用《ASP.NET开发,从二层至三层,至面向对象 (3)http://www.cnblogs.com/insus/p/3826706.html 将来的的博文演示中也会使用它。

在App_Code目录下,创建一个以数据表名相同的一个类(对象):

新建一个网页.aspx,用它来呈现数据表的数据,直接拉数据控件GridView:

在.aspx.cs代码中,实现给GridView控件绑定数据:

浏览一下:

以上的实现,相信很多学习与开发asp.net的人都会,太简单了,根本不值得一说一提一写。

问题来了,最后一列[Sex],性别具体1代码是男还是女,反之亦如此。能否以更友好清晰的表达来表现?下面列几种网友用常的方法:
第一种方法,写一个小函数去替换:

写好函数之后,在.aspx的Gridview控件,需要修改,不能使用自动产生列了:

预览结果:

第二种方法,较为复杂一些,不过也较常使用的,在.aspx分三步来修改GridView:

下面是实现OnRowDataBound="GridView1_RowDataBound":

此种方法预览结果跟第一种方法是一样的。

第三种方法,是Insus.NET使用的方法。出现这样的问题,多数是多表关联,一张表某些字段是另一个表的外键值。呈现时,均是键值或是代号。但实际是需要显示实际意义的字段。

解决它,可以创建一个表,是key与value对应的表:

然后修改一下[dbo].[usp_UserInfo_GetAll]存储过程:

在asp.net程序中,在后端无需修心任代码。

在.aspx页中的GridView中,仅引用另一个字段名:

三种方法,均演示完成了。哪一种方法,你觉得好,就使参考哪一种。

下面有新的要求,客户要求,将显示的0或1的信息,使用一张图片来替代。
这要求不难,用文字“男”或“女”还是用图片去替代0或1的方法,均是一样的。用Image去实现就是了。下面Insus.NET来演示一番:
实现之前,得先准备好两张图片,放于站点某一目录之下。

上面有三个步骤标记1至标记3。

编写一个私有函数:

然后就可以写 OnRowDataBound="GridView1_RowDataBound"事件了:

改好了,浏览看看效果:

上面图片替换方法,是通用大家所使用的方法。不过Insus.NET的方法,却不是这样来做。Insus.NET需要封装 GetSexImagePath(string num)或是GetSex(string num)函数

另外,由这地方的呈现在一个网站中,也许不止一次(网页)呈现,在管理员后台,会员后台,前端面向所有用户呈现的网页均要此样式呈现。

因此,可以写成一个控件即可,先在App_Code创建一个类别SexImg:

有三个public的property以及override方法RenderContents()。重要的一点,是继承了WebControl类。

接着,我们打开web.config文件,注册一下上面我们创建好的控件:

现在的问题是怎样使用这个控件呢?跟Web控件一样,没有什么分别:

在GridView控件内,使用刚才写好的控件,直接指写三个property。

在.aspx.cs内,无需写什么代码:

浏览的效果,跟上面的一样:

最后一个演示,学会了封装与创建自己定义控件。Insus.NET虽然只是依性别来举列,实现开发时,可会遇上很多类别,目录等相关的。

方法掌握了,相似的功能可以轻易实现。

ASP.NET开发,简化与封装

时间: 2024-08-27 16:29:37

ASP.NET开发,简化与封装的相关文章

ASP.NET开发规范:OWIN

ASP.NET开发规范:OWIN 今天投简历 准备面试了... 本节目录: OWIN简介 OWIN规范 Katana Hello World(3种Host) 自定义Middleware OWIN简介 OWIN(Open Web Interface For .Net) OWIN是.Net开源社区借鉴Ruby而制定的.Net Web开发架构,有着非常简单的规范定义,目标是用于解耦Web Server和Web Application. ASP.NET的局限性 ASP.NET核心是System.Web,

下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍

随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity, 使用Async来提高Web服务器的吞吐量和效率等.其中一个不得不提的是OWIN和Katana. OWIN的全称是Open Web Interface For .Net, OWIN是.Net开源社区借鉴Ruby而制定的.Net Web开发架构,有着非常简单的规范定义,同时极度降低了模块间耦合.OWIN并不是一个具体的实现,而只是一个规范,用来指导如何构建一个符合OWIN标准的Web生态环境

ASP.NET开发,从二层至三层,至面向对象 (4)

继续上一篇<ASP.NET开发,从二层至三层,至面向对象 (3)>http://www.cnblogs.com/insus/p/3826706.html .我们更深层次学会了逻辑层对象,即各个具体对象与数据库之间的逻辑类.  我们有分为有处理Access的SQL语句和SQL Server的SQL语句的,还有处理存储过程和参数的. 今天Insus.NET再从处理SQL语句对象,再创建一个对象叫SqlStatement吧.让用户引用这个类时,无需再写SQL语句,只管传入字段,或值,或条件. 实现之

ASP.NET-FineUI开发实践-9(四)

现在是这么个问题,在开发中表格是动态出来的,就是标准板是全部字段列出,客户要根据情况列出自己想要的,在增加操作页面的同时要是能用前台自带的功能直接保存到后台就好了,现在的列显示和隐藏是不回发的. 1.FineUI引用的extjs是ext-part1.js,这就不说了,以前截过图,这个文件是压缩的,参数也是简化的不好看,其实这个就是ext-all.js,ext-all哪来的呢,就是extjs官方实例里下的,下来之后也是压缩的,旁边还有个不压缩的,ext-all-debug.js ,完全可以看,那我

ASP.NET-FineUI开发实践-1

用.Net开发3年,主要接触资产管理,生产流程,质量追溯,.Net在这方面还是很靠谱的.2月低接触FineUI,那时版本是3.0+,第一眼让我想起了ExtJs,其实就是用.Net封装了ExtJs让ASP.NET开发更有效率,实际用起来确实是这样. ASP.NET的回发确实让人头疼,很多东西即使结合前台Js也用的很别扭,而ExtJs在.Net开发环境下又很复杂完全是另一种语言,即使后来有ExtJs For .Net也用不好,结果是没用起来.FineUI处理回发的机制刚好结合了ExtJs和 ASP.

ASP.NET开发,从二层至三层,至面向对象

昨天Insus.NET有写了一篇博文<WEB控件没有什么所谓好不好,而是用得好不好>http://www.cnblogs.com/insus/p/3821644.html  很多网友持意见相左看法,Insus.NET在评论之中也有作出个人回复,见#29与#30楼. 本篇Insus.NET继续再以Web控件来开发,如果你对Web控件无兴趣,只能说声抱歉,可以略过. 数据库是以Access为例.Insus.NET好象从没有有在商业上用过Access数据,全是SQL Server.没有关系,用什么都

&lt;转&gt;下一代Asp.net开发规范OWIN(1)—— OWIN产生的背景以及简单介绍

2014-09-04 07:22 by JustRun http://www.cnblogs.com/JustRun1983/p/3955238.html 随着VS2013的发布,微软在Asp.Net中引入了很多新的特性,比如使用新的权限验证模块Identity,使用Async来提高Web服务器的吞吐量和效率等.其中一个不得不提的是OWIN和Katana. OWIN的全称是Open Web Interface For .Net, OWIN是.Net开源社区借鉴Ruby而制定的.Net Web开发

[c#]asp.net开发微信公众平台(8)微信9大高级接口,自定义菜单

前7篇把最基础的消息接收和回复全做完了,  也把高级接口的入口和分拆处理写好了空方法,  此篇接着介绍微信的9大高级接口, 并着重讲解其中的自定义菜单. 微信9大接口为: 1.语音识别接口 2.客服接口 3.OAuth2.0 网页授权接口 4.生成带参数的二维码接口 5.获取用户地理位置接口 6.获取用户基本信息接口 7.获取关注者列表接口 8.用户分组接口 9.上传下载多媒体文件接口 具体介绍: 1. 语音识别 功能描述:通过语音识别接口,用户发送的语音,将同时给出语音识别出的文本内容. 实用

asp.net 开发时的小问题

最近公司老板让我用asp.net开发公司的小的ERP系统,在用jquery ajax访问aspx.cs文件中的[WebMethod]的静态方法时老是遇到身份验证的错误信息,头疼了好久找不到方法,终于在一个外国的外码分享网站找到了解决的方法,就是把APP_Code里的RouteConfig.cs文件中的 settings.AutoRedirectMode = RedirectMode.Permanent 改为 settings.AutoRedirectMode = RedirectMode.Off