数据绑定控件展示、编辑、新建用户列表

本文介绍了ASP.NET中使用ObjectDataSource控件与GridView、DetailsView的数据绑定过程,包括用户信息的显示、编辑、插入及更新操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

若其中有错误地方,期待您的批评指正。

效果:

概述:

(1)讲述与数据展示相关的数据源控件和数据绑定控件,数据源控件主要讲述ObjectDataSource控件,该控件可以将业务逻辑层返回的对象或者对象集合直接绑定在数据绑定控件。

(2)利用SqlDataSource数据源控件,对数据的访问方法得到了极大的简化。你几乎不用编写一行代码,就能够完成数据的查询、更新、插入和删除等常用操作。但是这有一个缺点:表示层和业务逻辑层混杂在一起。当项目规模较大时就需要分层处理。这样的话,SqlDataSource数据源控件就不能发挥作用。而且SqlDataSource返回的对象是DataSet。我们知道DataSet有诸如弱类型、非面向对象等缺陷。

(3)为了解决这个问题,我们所以使用ObjectDataSource数据源控件。ObjectDataSource控件通过结构对象或者业务实体对象,将数据传递给数据绑定控件,从而实现数据的显示、编辑、排序等功能。

(4)下面例子使用已经搭建好的三层结构,数据库表Admin和Role存在主外键关系,如图1,图2。使用ObjectDataSource数据源控件,数据绑定控件使用了GridView和DetailsView

                                        

(5)连续插入新用户。

1.用户列表绑定的步骤

前面已经讲述过GridView的用法,不过使用的是SqlDataSource,这次使用ObjectDataSource。

(1)将GridView控件拖入页面,并“取名”ID为GridView_Admin这时需要选择新建数据源,如图3所示。

(2)选择新建数据源,打开数据源类型选择对话框,如图4所示。我们使用ObjectDataSource,所以这里选择对象,并给数据源“取名”指定ID。

(3)单击“确定”按钮后,转到选择业务对象对话框,如图5所示,选择业务逻辑层BLL.AdminManager类

(4)单击“下一步”按钮,进入定义数据方法对话框,可以设置需要的查、改、增、删方法,如图6所示。GridView没有INSERT插入方法。所以在SELECT、UPDATE、DELETE选择相应的方法。

(5)单击“完成”按钮就可以显示Admin表中数据,但是不会显示角色RoleGridView只能绑定基本类型,但不能绑定自定义的类型,可以将其转换成模板,下面会讲到。

2.GridView显示、编辑修改用户

(1)在智能标记中勾上,启用编辑、启用删除、启用选定内容。因为前面已经讲述过分页,这里暂时不作详细介绍。如图7所示。

(2)智能标记“编辑列”添加Role字段,并将Role字段和Id字段,都转换成模板。单击“确定”。如图8所示。

(3)GridView绑定三层DataKeyNames属性一定要手动去配置。如图9所示,这里选择为Id。

(4)智能标记,进入编辑模板,选择模板Id,因为Id是一个标识列,当修改用户时候,不需要修改ID,只显示其内容即可。EditItemTemplate总是默认为txt文本框,这里只需将该文本框删除,拖一个Label标签即可,智能标记,编辑DataBindings,字段绑定到Id。仅仅用于显示Id。如图10所示。

               

(5)编辑模板,选择“Role”,将Label标签“取名”为lblAdmin。并编辑DataBindings,取消双向数据绑定,选中自定义绑定,修改代码表达式Eval("Role")为Eval("Role.RoleName")。如图11所示。单击“确定”。

(6)删除EditItemTemplate中的txt文本框,并拖一个DropDownList控件到EditItemTemplate。选择新建数据源,打开数据源类型选择对话框,使用ObjectDataSource,所以这里还选择对象,并给数据源“取名”指定ID。如图12所示。

(7)单击“确定”按钮后,转到选择业务对象对话框,如图13所示,选择业务逻辑层BLL.RoleManager类

(8)单击“下一步”按钮,进入定义数据方法对话框,这里只选择SELECT方法,就一个显示功能即可,SELECT选择GetAllRoles(),返回 List<Role>。

(9)单击“完成”,选择在DropDownList中显示的字段为“RoleName”,为DropDownList值选择字段为“RoleId”,单击“确定”。

(10)DropDownList智能标记,编辑DataBindings,先选择字段绑定到Role,然后取消双向数据绑定,选中自定义绑定,修改代码表达式Eval("Role")为Eval("Role.RoleId")。单击“确定”。目前还不能进行编辑,否则报错。

(11)绑定GridView的ObjectDataSource的Updating事件。手写代码,代码如图14所示。先导入using Models和using BLL包。

      

(12)保存,查看IE,如图15所示。可以进行编辑,更新。

3.DetailsView显示、编辑、插入用户

DetailsView控件可以显示数据库中单条记录的详细信息,其实使用起来,DetailsView控件和GridView控件非常相似,步骤与前面讲述的GridView步骤大体相似,可以参考,与GridView不同的步骤,使用图示。依旧使用ObjectDataSource控件,唯一不同的是,这里的ObjectDataSource控件是传递参数的。DetailsView可以进行新增数据。

显示用户

(1)将DetailsView控件拖入页面,并“取名”ID为DetailsView_Admin这时需要选择新建数据源。

(2)打开数据源类型选择对话框,我们使用ObjectDataSource,所以这里选择对象,并给数据源“取名”指定ID为ObjectDataSource_DetailsViewAdmin。

(3)单击“确定”按钮后,转到选择业务对象对话框,选择业务逻辑层BLL.AdminManager类,单击“下一步”。

(4)进入定义数据方法对话框,可以设置需要的查、改、增、删方法,所以在SELECT、UPDATE、INSERT、DELETE选择相应的方法。这里与GridView不同的是SELECT方法选择的是GetAdminById()而不是GetAllAdmins(),主要是DetailsView与GridView进行关联,当在GridView中选择一个用户,下面DetailsView中便显示相应的用户。四个方法如图16所示。

(5)单击“下一步”,进入到定义参数对话框,参数源选择Control,ControlID选择GridView_Admin,如图17所示。

(6)单击“完成”,智能标记,勾上启用插入,启用编辑,启用删除。

(7)智能标记“编辑字段”添加Role字段,并将Role字段和Id字段,都转换成模板。单击“确定”。

(8)同上面介绍的GridView一样,DataKeyNames属性一定要手动去配置,这里选择为Id。

                                

(9)智能标记,进入编辑模板,选择模板Id,因为Id是一个标识列,修改用户时候,不需要修改ID,只显示其内容即可。EditItemTemplate总是默认为txt文本框,这里同样只需将该文本框删除,拖一个Label标签即可,智能标记,编辑DataBindings,字段绑定到Id。仅仅用于显示Id。InsertItemTemplate模板,插入用户,同样,不用插入标识列ID。如图18所示,当GridView选择一个Id为34的用户,下面就出现选中用户信息。当点击DetailsView中的编辑时候,Id便不再是文本框形式了。

                    

(10)编辑模板,选择“Role”,将显示模板ItemTemplate中Label标签“取名”为lblDetailsRole。并编辑DataBindings,取消双向数据绑定,选中自定义绑定,修改代码表达式Eval("Role")为Eval("Role.RoleName"),单击“确定”。

(11)删除EditItemTemplate中的txt文本框,并拖一个DropDownList控件到EditItemTemplate,“取名”为DropDownList_DetailsUpdate。选择新建数据源,打开数据源类型选择对话框,使用ObjectDataSource,所以这里还选择对象,并给数据源“取名”指定ID为ObjectDataSource_DetailsUpdate。

(12)单击“确定”按钮后,转到选择业务对象对话框,选择业务逻辑层BLL.RoleManager类

(13)单击“下一步”按钮,进入定义数据方法对话框,这里只选择SELECT方法,就一个显示功能即可,SELECT选择GetAllRoles(),返回 List<Role>。

(14)单击“完成”,选择在DropDownList中显示的字段为“RoleName”,为DropDownList值选择字段为“RoleId”,单击“确定”。

(15)DropDownList智能标记,编辑DataBindings,先选择字段绑定到Role,然后取消双向数据绑定,选中自定义绑定,修改代码表达式Eval("Role")为Eval("Role.RoleId")。单击“确定”。现在已经能完整显示选择的一个用户的详细信息,如图19所示。

 

编辑更新用户

(16)绑定DetailsView的ObjectDataSource的Updating事件,而不是EditItemTemplate中的DropDownList的Updating事件。这里很容易出错,千万要注意,如图20所示。

(17)手写代码实现编辑更新功能,代码如图21所示。

        

(18)目前可以编辑更新DetailsView中的用户,但是上面的GridView中的该条用户,不能同步更新,还需要绑定DetailsView的ObjectDataSource的Updated事件,需要手写一行代码即可,代码如图22所示:

       

(19)保存,查看IE,修改DetailsView中的内容,便可同步更新GridView中的内容。

插入新建用户,与编辑更新用户相似

(20)同显示用户步骤(11)相同,删除插入模板InsertItemTemplate中的txt文本框,并拖一个DropDownList控件到InsertItemTemplate,“取名”为DropDownList_DetailsInsert。选择新建数据源,打开数据源类型选择对话框,使用ObjectDataSource,所以这里还选择对象,并给数据源“取名”指定ID为ObjectDataSource_DetailsInsert。

(21)同理:同显示用户步骤(12)到(14)相同,单击“确定”按钮后,转到选择业务对象对话框,选择业务逻辑层BLL.RoleManager类;单击“下一步”按钮,进入定义数据方法对话框,这里只选择SELECT方法,就一个显示功能即可,SELECT选择GetAllRoles(),返回 List<Role>;单击“完成”,选择在DropDownList中显示的字段为“RoleName”,为DropDownList值选择字段为“RoleId”,单击“确定”。

(22)DropDownList智能标记,编辑DataBindings,这里插入模板与编辑模板不同,字段绑定,绑定到选择“未绑定”,如图23所示,否则会报错。

(23)同编辑更新用户步骤(16)相似,但是这里需要绑定DetailsView的ObjectDataSource的Inserting事件,注意别绑定错了。代码也相似,如图24所示。

          

(24)绑定DetailsView的ObjectDataSource的Inserted事件,也是一行代码,如图25所示。

         

(25)保存,查看IE。当选择新建,便可以向GridView中插入新的数据。上面的做法其实还是可以简化的,这里暂时不做解释。

4.连续插入新用户

(1)拖一个TextBox标签到页面,“取名”ID为txtUserName。

(2)拖一个TextBox标签到页面,“取名”ID为txtPassWord,并修改TextMode属性为Password。

(3)拖一个DropDownList控件到页面,“取名”ID为DropDownList_AddUser,并新建数据源,选择业务逻辑层BLL.RoleManager类;单击“下一步”按钮,进入定义数据方法对话框,这里只选择SELECT方法,就一个显示功能即可,SELECT选择GetAllRoles(),返回 List<Role>;单击“完成”,选择在DropDownList中显示的字段为“RoleName”,为DropDownList值选择字段为“RoleId”,单击“确定”。

(4)拖一个Button按钮到页面,“取名”ID为btnAddUser,Text属性为“增加用户”,如图26所示。

(5)双击Button按钮,进入后台编写代码,如图27所示。

           

(6)保存,浏览IE,如图28所示,当输入用户名,密码,选择角色,单击“增加用户”,便可以在GridView中同步显示添加的用户。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值