当我们设计多层式的Web应用系统时,数据的存取不在是直接透过sqlDataSouce来处理,而是透过中间层(商业逻辑层)的Web Service或者是Com+组件来处理

以往要写这样的方式,必须撰写许多的程序,才能够实现这样的架构,而新的ASP.NET 2增加了一个新的Web Control→Object DataSource,可以让我们写粉简短的程序,就能够做到类似sqlDataSouce的功能,将新增、修改、删除、查询包成对象中的方法

建立对象Object

首先,必须将透过中间层的组件的新增修改删除查询的动作,包装成为ASP.NET的对象,这样Object DataSource才能够使用对象的方式来达到目的方式步骤如下

1. 新增一个Class.vb的项目:新增一个与您数据库沟通的对象,假设名称为MenuIfno.vb

2. 为这个对象建立查询、新增、修改、删除的Function,Function的内容就是呼叫您所撰写的中间层组件(COM+,WebService),其中查询的Function必须传回DataSet或者DataReader,不过由于DataReader必须在读取的过程中将Connection持续的连接,再此建议大家回传DataSet

3. 假设我已经撰写好的查询、修改Function如下

1. GetMenuAll():传回所有数据表

2. GetMenu(NodeId):传回某一笔资料,NodeId为Key值

3. UpdateMenu(NodeId,ParentId,sText,sValue,.....)更新数据

Object DataSource设定

接着就是Object DataSouce的设定方式与步骤如下:

1. 从控件中拉除一个sqlDataSource1,透过Smart Tag中的Configure Data Source设定sqlDataSource

2. 在Choose your business object中,就可以下拉看到您刚刚所建立的对象【MenuInfo】→Next

3. 接着,可以看到有四个页笺(SELECT,UPDATE,INSERT,DELETE),可以根据需求,进入各页笺,选择所要的Function

4. 例如目前要的是一个显示全部数据的动作,所以就选择了SELECT对应到GetAllMenu

5. 按下Finish就完成了设定

数据浏览GridView

接着就建立一个GridView,并且把DataSource设定为刚刚所建立的object DataSource1,接着直接执行就可以将数据表中的数据显示出来。

Detail View单笔数据修改删除

1. 接着我们希望能够设计一个Detail View将刚刚的Grid View点选的数据显示在Detail View中作单笔的修改、删除动作。所以我们将刚刚建立的GridView透过Smart Tag设定Enabled Select Mode。

2. 接着建立第二个ObjectDataSource2给Detail View,设定页笺如下:

1. SELECT:GetMenu(NodeId)

2. UPDATE:UpdateMenu(NodeId,ParentId,sText,....)

3. DELETE:DelMenu(NodeId)

3. 接着由于SELECT的时候有个参数NodeId,需要设定该参数的来源:

1. 在Paramenter Source设定为Conrtrol

2. ControlID下拉可以选择刚刚建立的GridView

3. 接着按下Finish建立好该ObjectDataSouce2

4. 点选Object DataSource2设定他的属性【UpdateParameters】:

1. 点选...进入设定的画面中

2. 选择NodeId

3. 设定Parameter Source为Control

4. 设定ControlID为GridView1

5. 再来拉出Detail View控件,将该控件的DataSource设定为Object DataSource2

6. 点选DataView并且设定属性窗口中找到【DataKeyNames】设定主索引为【NodeId】

接着来看看这样设定的结果,点选某笔数据,就可以在DetailView中显示该笔数据的内容,并且可以点选编辑,来修改该笔的资料,可以让我们在撰写最少的程序下,轻松的完成多笔查询、单笔维护的画面设计。

posted on 2008-06-09 19:03  topcat  阅读(318)  评论(0)    收藏  举报