ASP.NET学习笔记—- 数据查询与体现GridView

原文地址:
[原文源码下载]
[译者改后源码下载]

 

[翻译]在GridView中插入新记录

数据查询与展示GridView

原文发布日期:2007.04.11
作者:Bipin Joshi
翻译:webabcd

 

GridView控件不允许你插入新记录。
本文中我将举例说明快速解决这个问题的方法。

GridView连接数据源
编码指定数据源
this.GridView1.DataSource = 返回值为集合的方法;
this.GridView1.DataBind();
以下为使用数据源控件

介绍
几个月前我写了一篇文章,是讲述一个允许你在DataGrid里添加一条新记录的技巧。
GridView控件不允许你插入新记录。
这种情况下开发人员经常使用如下的技术增加新记录:

数据源控件

    ·他们在GridView的下面放置一个DetailsView控件。
用户可以通过DetailsView增加新记录,然后这条新记录就会显示在GridView里。
   
·他们通过一个超级链接使用户连接到另一个使用DetailsView增加新记录的web
form。 一旦记录被添加后就会返回之前的页。

控件名

这些方法都有它们自己的缺点。
第一种方法占用了太多的屏幕空间,即使你增加的只是很少的记录。
所以它不是“主要用于编辑,偶尔增加记录”情况下的好的选择。
第二种选择需要额外创建一个web
form,因为来回导航会需要向服务器发送更多的请求。
本文中我将举例说明快速解决这个问题的方法。

说明

解决方案
GridView控件提供了一个被称作Empty Data Template的模板。
当GridView里没有数据显示的时候这个模板就会显示出来。
一般在没有数据显示的时候,这个模板会被用于显示一个给出示给用户的状态信息。
但是,你也可以为了别的目的而是用它。
本例中,你将使用它来给GridView增加新的记录。

SqlDataSource

新建一个Web Form示例
开始先在Visual Studio中新建一个web站点。
拖拽一个SQL数据源控件并配置它以从Northwind数据库的Customers表中选择出CustomerID、CompanyName、ContactName和Country列。
威尼斯官方网站登录 1

用来从SQL Server、ODBC、Oracle等数据源中检索数据。通过连接字符串指定。

确保选择了“高级”按钮,并且选中“生成INSERT、UPDATE和DELETE语句”复选框。
威尼斯官方网站登录 2

AccessDataSource

现在,在你的web
form里添加一个GridView控件,设置它的DataSourceID属性为SqlDataSource1。
启用这个GridView的编辑、删除和分页。
在GridView的智能标签中选择“编辑列…”选项。
威尼斯官方网站登录 3

继承自SqlDataSource,专门用于从Access数据库中检索数据

在GridView中增加一个ButtonField,并设置它的CommandName属性为Insert。
用户通过单击插入按钮来增加新的记录。
威尼斯官方网站登录 4

ObjectDataSource

现在右键单击GridView选择编辑模板 – Empty Data Template菜单选项。
拖拽DetailsView控件到Empty Data
Template内,设置它的DataSourceID属性为SqlDataSource1。
威尼斯官方网站登录 5

能够将来自业务逻辑层的数据对象与表示层中的数据绑定控件绑定,实现数据的显示、编辑等任务

同时设置它的DefaultMode属性为Insert。 当Empty Data
Template显示的时候,DetailsView将会做好插入记录之前的准备。

XmlDataSource

现在来到web
form的后置代码中写出GridView的RowCommand事件处理的代码,出示如下:

用于检索和处理XML等分层数据。它可以从文件、URL或者也包含XML内容的字符串中加载XML数据

威尼斯官方网站登录 6protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)
威尼斯官方网站登录 7威尼斯官方网站登录 8威尼斯官方网站登录 9{
威尼斯官方网站登录 10    if (e.CommandName == “Insert”)
威尼斯官方网站登录 11威尼斯官方网站登录 12    威尼斯官方网站登录 13{
威尼斯官方网站登录 14        GridView1.DataSourceID = “”;
威尼斯官方网站登录 15        GridView1.DataBind();
威尼斯官方网站登录 16    }
威尼斯官方网站登录 17}

SiteMapDataSource

这里我们检查了GridViewCommandEventArgs的CommandName是否是“Insert”。
如果我们设置了GridView的DataSourceID属性为空,然后调用GridView的DataBind()方法的话,
那么GridView将不会有任何数据,从而显示Empty Data Template。

专门处理类似站点地图的XML数据。默认情况下,数据源好似以.sitemap为扩展名的XML文件

现在我们来处理DetailsView控件的ItemInserted事件。
当DetailsView成功的插入了一条新记录的时候,这个ItemInserted事件就会被触发。
在ItemInserted事件内写出如下代码:

 

威尼斯官方网站登录 18protected void DetailsView1_威尼斯官方网站登录,ItemInserted(object sender, DetailsViewInsertedEventArgs e)
威尼斯官方网站登录 19威尼斯官方网站登录 20威尼斯官方网站登录 21{
威尼斯官方网站登录 22    GridView1.DataSourceID = “SqlDataSource1”;
威尼斯官方网站登录 23    GridView1.DataBind();
威尼斯官方网站登录 24}

常见数据绑定控件

这里我们再次设置了GridView的DataSourceID属性为SqlDataSource1,然后再次绑定它。
这样GridView就可以显示出最新插入的记录。
威尼斯官方网站登录 25

控件名称

威尼斯官方网站登录 26

说明

总结
GridView控件不允许你插入新的记录。 但是,通过它的Empty Data
Template的帮助和DetailsView控件,你就可以有一个插入新记录的非常棒的方法。
用这种方法你可以节省屏幕空间,也不需要再用额外的页了。
下面的截图显示了我们的web form

GridView

作者:Bipin Joshi
Email:
简介:Bipin
Joshi是DotNetBips.com的管理员。他是的发起人,这个公司提供.NET
framwork的培训和咨询服务。他在印度孟买为开发者提供培训。他也是微软的MVP(ASP.Net)和ASPInsiders的会员。

通过表格方式实现数据的展示,并集成编辑、分页、排序等功能。

译者注:文中代码有个小问题,就是在指定数据源后会自动进行数据绑定,而不用再调用DataBind()方法。

DetailsView

显示单条记录的详细信息,并支持对记录的添加、删除、修改等。

DropDownList

下拉菜单控件

数据绑定控件绑定数据源语法
数据绑定控件ID.DataSourceID = 数据源控件ID;

绑定字段

BoundField

用于显示普通文本,是默认的数据绑定列的类型,一般自动生成的列就是该类型

**
GridView查询所有信息
步骤:1、添加GridView控件(数据)——配置好显示列
2、在GridView 任务选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
3、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的方法
GridView中添加新列(添加外键列)
步骤:1、在GridView 任务——单击添加新列——在添加字段的选择字段类型下拉框中选择TemplateField——并添加页眉文本——单击确定
2、在GridView 任务——单击编辑模板——在GridView 任务模板编辑模式的显示下拉框中选择刚才添加的新列——在ItemTemplate中添加一个Lable控件——在Lable任务中——单击编辑DataBindings——在Lable DateBindings对话框中为Text绑定数据——首先选中字段绑定——在字段绑定下拉框中选择需要的字段——然后在选择自定义绑定进行代码表达式修改对要显示的外键字段对象进行修改来显示
相应的属性——单击确定——在GridView 任务——单击结束模板编辑

DropDownList控件绑定数据源连接GridView控件根据条件显示
步骤:1、添加DropDownList控件(标准)——在DropDownList任务——单击选择数据源——在选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
2、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的方法
3、在选择要 DropDownList 中显示的数据字段下拉框中选择所需的字段
4、在为DropDownList 的值选择数据字段下拉框中选择所需的字段(一般选择ID字段)
5、将DropDownList控件AutoPostBalck改为true
6、添加GridView控件(数据)——配置好显示列
7、在GridView 任务选择数据源下拉框中选择新建数据源——在数据源配置向导的选择数据源类型中选择对象——单击确定
8、在选择业务对象下拉框中选择需要的业务逻辑层方法——单击下一步——在定义数据方法中选择SELECT——在选择方法下拉框中选择所需要的代参方法——单击下一步
9、在定义参数对话框中的参数源下拉框中选择Control——在ControlID下拉框中选择DropDownList控件名——在DefaultValue文本框中
可以给定DropDownList控件所选中的默认值(也可以不写)——单击完成

在后置代码中获得选中的值DropDownList.SelectedValue.ToString();**

DropDownList 的常用属性和事件

属性或事件

说明

SelectedItem 属性

设置获取下拉菜单的选中项,该属性的类型为System.Web.UI.WebControls.ListItem,所有列表控件(ListControl)中的项都是该类型。他常用的两个属性是Text和Value。Value用于设置获取项的值;Text用于设置获取显示文本

SelectValue 属性

获取选择项的值,与SelectedItem.Value一致

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章