在网站项目中添加“模块”
来源:互联网 发布:世纪通信软件 编辑:程序博客网 时间:2024/04/30 11:59
遇到的问题:
这段时间在合作开发一个项目,这个项目是经典三层架构的,在U层我们使用的是网站而非项目,而B层和D层使用的是项目。(这里解释一下,这里的项目并非我们整个系统,而是在新建的时候选择的项目和网站,下同。)
我们在传统的项目,经常用到模块,那么我们抽象出来的模块就可以更好复用,这是面向对象中大家都明白的道理。
了解了我们这个问题的背景,下面我来说说这个问题:
在设计过程中,我发现很多地方都要把查到的数据绑定到dropdownlist中。这时我就想能不能把这个绑定的过程抽象出来,抽象成一个方法,这样将来在需要修改的时候我只需要修改我的方法就行,而不是去找那么多的地方一个个修改。
说到这里,我突然想到,前些天米老师在一次项目验收时,给我们讲的关于面向对象的问题。米老师说,其实我们还没有真正明白什么是面向对象,没有体会到面向对象的好处。真正的面向对象不是把写好的代码或者某个编译好的类到处用,而应该是一种引用而非复制。类改了,那么引用这个类的所有的地方都会跟着改。面向对象使得我们没有必要一个个单独去改他们。
其实这个方法很简单,很容易实现。今天之所以拿出来说它,主要是想说说如何在一个网站项目中使用这样的方法。
我们大家都知道,要想让其他类都能使用这个方法,我们需要把这个方法放到一个类中。而面向对象的思想要求我们,对象只能拥有属于它的属性。而通常我们是把这个方法放到一个单独的模块中。但是当我尝试这样做的时候,却不能在一个网站项目中建立这样一个模块。
对于这样一个问题,我是这样解决的:
在网站中新建一个类,这个类会被自动放入到App_Code文件夹中。然后在这个类中建立一个静态的方法,这样我们在U层的类中就可以直接调用这个方法啦!
using System;using System.Collections.Generic;using System.Linq;using System.Web;
//引入需要的类using System.Web.UI.WebControls;//因为我传入的是一个控件,这个方法要对控件进行操作,所以引入该命名空间using System.Data;/// <summary>///将查到的数据绑定的下拉列表/// </summary>public class BindingDrop{public BindingDrop(){////TODO: 在此处添加构造函数逻辑//} /// <summary> /// 将查到的数据绑定的下拉列表 /// </summary> /// <param name="obj">要绑定的控件</param> /// <param name="dt">源数据表</param> /// <param name="textField">显示的字段--字符串型</param> /// <param name="valueField">绑定的字段--字符串型</param> public static void bindDrop(DropDownList obj, DataTable dt, string textField, string valueField) //静态方法 { //绑定数据 obj.DataSource = dt; //指定显示字段 obj.DataTextField = textField; //指定绑定值 obj.DataValueField = valueField; obj.DataBind(); //插入 请选择 项 obj.Items.Insert(0, new ListItem("--请选择--", "")); }}
这样就可是实现和模块功能一样的一个类,在界面层需要的地方直接使用类名调用该静态方法即可。
- 在网站项目中添加“模块”
- 如何在Cuyahoga中添加公告模块
- 如何在Cuyahoga中添加公告模块
- 在DNN中添加模块定义
- 在TrainPort中添加Pageturn模块
- 在android源码中添加库模块
- 在android源码中添加库模块
- 在Python中添加自定义模块
- [Python]在Python中添加自定义模块
- 在Python中添加自定义模块
- 如何在LINUX内核中添加模块
- 在Python中添加自定义模块
- 在Python中添加自定义模块
- 如何在网站中添加音乐
- 在网站中添加百度地图
- 如何在网站中添加百度地图
- 在网站中添加在线推广qq
- 【转载】如何在网站中添加音乐
- oralce 中查询锁表记录以及解锁
- Android 4.1 - 如何使用systrace做性能分析
- oracle COALESCE 函数
- AVIFile
- struts2上传文件
- 在网站项目中添加“模块”
- SDUT——选夫婿2
- 第三周任务3:时间类
- struts2自定义拦截器
- 压力测试工具apache-ab讲解
- Java中Junit简单测试
- hibernate配置文件:hibernate.cfg.xml常用属性
- struts2校验方法
- TeraSort_Hadoop_排序