简介
不得不承认,为 microsoft? asp.net 编写 datagrid 代码包括大量的重复工作。尽管我深受该控件的困扰,但我还是不断寻找简化这类任务的捷径。谁都不愿意做重复的工作,对不对?为了摆脱这种烦人的工作,我们要将多个项目中的重复代码封装到一个可重复使用的程序包中。这才是面向对象的编程工作所要解决的问题,使用 datagrid 也不例外。对于 datagrid 控件来说,要实现该目的,需要将常用的代码放到一个内置的列类型中(将在第一个示例中使用),然后创建一个可以在多个 datagrid 对象中重复使用的自定义列类型。
本文介绍使用标准 templatecolumn 在一个 datagrid 列中使用 dropdownlist 控件的过程,然后将该逻辑转换为您的自定义 datagrid 列类型,我称其为 dropdowncolumn。已经为您创建了一些免费的 datagrid 列,您可以到 metabuilders.com 下载所需的类型。
重复使用的情况
如果您的小组与许多组织一样,已经将业务逻辑和/或数据访问逻辑分成单独的组件或组件集,而剩下的 asp.net 文件、aspx 及其代码只包含纯粹的表示逻辑。(“纯粹”是一个相对的词语。)但是,即使是表示层的逻辑有时也会重复使用,这样,下次某个用户来到您门前说,“我想让我的应用程序在‘财务’方面看起来与苏茜的一样”时,您可以重复使用“财务”应用程序的部分表示内容快速为其构建一个这样的应用程序。您可能还想将一些逻辑打包,在 web 上销售或在您的 web 站点分发。asp.net 使这一切比以往更容易实现,因为它使您可以创建自己的服务器控件,或从现有的类型导出列类型,从而获得所需的功能。
dropdownlist 方案
假设您正在本地 microsoft sql server? 中编辑 northwind 数据库(或做其他工作),您想使您的用户(我们称之为 ed,仓库保管员)可以编辑 orders 表。其中一个字段包含运输信息 (shipvia),ed 要能够修改该字段的信息。在显示模式下,运输公司应显示为纯文本。当 ed 单击 edit(编辑)按钮时,您不光要为他提供一个 textbox 以编辑运输方式代码(1、2 或 3),还要为他提供一个包含可以选择不同运输公司的 dropdownlist。(因为 ed 记不住哪个运输公司对应哪个号码,所以,dropdownlist 方案可以帮助他解决这个问题。)
图 1:选择运输公司
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器