零基础学asp.net3.5 第5章  数据绑定_第1页
零基础学asp.net3.5 第5章  数据绑定_第2页
零基础学asp.net3.5 第5章  数据绑定_第3页
零基础学asp.net3.5 第5章  数据绑定_第4页
零基础学asp.net3.5 第5章  数据绑定_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章 数据绑定,在经济日益发达的社会中,商业应用程序随处可见,如银行中的各种信息管理系统等,他们的核心内容都是数据,可以想象一下银行中的客户资料信息、资金的存取等,这将是多么庞大、多么负责的数据。正是由于有了应用程序对这些数据进行管理,才使得这些数据被准确快速的处理。本章主要介绍在ASP.NET中,进行据绑定的各个方面。主要涉及到的知识点有:数据绑定概述、单值数据绑定、复值数据绑定和数据源控件进行数据绑定等操作。【本章示例参考:源代码C05】,5.1 数据绑定概述,数据绑定是指定在运行时将值动态地赋给控件的属性的过程。可以将控件的属性绑定到表达式、属性、方法、集合,甚至另一个控件的属性。数据绑定的重点不是数据部分,而是绑定部分。ASP.NET的声明性数据绑定语法仅在调用DataBind()方法时计算。该方法是页和所有服务器控件的方法。通常是从Page_Load事件调用DataBind(),如下所示。Protected void page_Load(Object Src ,EventArgs E)DataBind();还有一种后期绑定的静态方法:DataBinder.Eval(),该方法用于计算后期绑定的数据绑定表达式。使用其很方便,因为其消除了开发人员为强迫值转换所需的数据类型,而必须做的许多显示转换。,5.2 绑定单值数据,可以将单独的控件属性绑定到实际的任何信息上,这些信息可被解析成适合于所绑定的属性的单值。也可以将数据库中的某个字段和单值控件进行绑定。,5.2.1 绑定表达式,使用数据绑定表达式,可以将控件属性值绑定到数据。数据绑定表达式包含在“”分隔符之内,并使用Eval()和Bind()函数来进行绑定。Eval()函数用于定义单向绑定,这样不能对数据进行更新。该方法采用数据字段的值作为参数并将其作为字符串返回。Bind()方法支持读/写功能,所以Bind()函数用于双向绑定。Bind()函数用于定义双向绑定,并支持数据的更新操作。该方法可以检索数据绑定控件的值,并将任何更改提交回数据库。,5.2.2 使用Eval()方法,Eval()方法可计算数据绑定控件(如GridVie控件)的模板中的后期绑定数据表达式。在运行时,Eval()方法调用DataBinder对象的Eval()方法,同时引用命名容器的当前数据项。命名容器通常是包含完整记录的数据绑定控件的最小组成部分,如GridView()控件中的一行。因此,只能对数据绑定控件的模板内的绑定使用Eva()方法。 /Eval()方法以数据字段的名称作为参数,从数据源的当前记录返回一个包含该字段值的字符串。可以提供第二个参数来指定返回字符串的格式,该参数为可选参数。字符串格式参数使用为String类的Format()方法定义的语法。,5.2.3 使用Bind()方法,Bind()方法与Eval()方法有一些相似之处,但也存在很大的差异。虽然可以像使用Eval 方法一样使用Bind()方法来检索数据绑定字段的值,但当数据可以被修改时,还是要使用 Bind()方法。 如果已为数据源控件定义了Select、Insert、Delete和Update等SQL语句,则通过在模板中使用Bind()方法,就可以使控件从模板中的子控件中获取值,并将这些值传递给数据源控件。然后数据源控件将执行适当的SQL命令。出于这个原因,在数据绑定控件的 EditItemTemplate模板或者InsertItemTemplate板中要使用Bind()函数,如下所示的代码就使用了Bind()进行数据字段的绑定: /Bind()方法通常与输入控件一起使用,例如由编辑模式中的 GridView 行所呈现的 TextBox控件。当数据绑定控件将这些输入控件作为自身呈现的一部分创建时,该方法便可提取输入值。与Eval()方法相同,Bind()方法采用数据字段的名称作为参数,从而与绑定属性关联。,5.3 绑定单值字段,对于单值绑定,经常会在项目中用到。进行单值字段绑定时,数据表达式经常被包含在服务器控件的属性值中。例如: 此时,数据绑顶表达式可以是一个变量,也可以是一个带返回值的C#或者VB.NET方 法,还可以是某个控件的属性值,也可以是C#对象的某个字段或者属性的值等。,5.3.1 绑定属性,将一个Label控件的Text属性绑定到Button控件,如下所示:要使以上绑定成功执行,还需要在后台功能代码中调用Button控件的DataBind()方法来实现绑定:protected void Page_Load(object sender, EventArgs e) Button1.DataBind();以上代码执行后,将得到如图5.1所示的效果。,5.3.2 绑定C#对象中的字段,在后台功能代码中所创建的字段,可直接被进行绑定,如下面的代码所示,分别将一个公用字段和一个公用方法进行绑定。要正常执行绑顶,要确保在后台功能代码中已经创建好了一个被绑定的字段和方法,并调用了DataBind()方法,代码如下所示。protected void Page_Load(object sender, EventArgs e) DataBind();public string time = DateTime.Now.ToString();public string method() string message = 我是要被绑定的字段值!; return message;,5.3.3 内联引用方式调用C#代码,可通过内联引用的方法,在Web前台页面中调用执行C#代码,如下面的代码所示,直接在前台页面中读取当前的时间并输出。 浏览页面后,效果如图5.3所示。,5.3.4 引用配置文件中预定义的字段,可直接在页面中调用配置文件中预定义的字段,将该字段进行绑定,如下代码所示。首先在web.config文件中添加如下所示的配置信息: 然后在页面中进行如下所示的绑定: 浏览页面,效果如图5.4所示。,5.4 绑定复值数据,实际应用中,经常会遇到将数据库中的某个字段显示到一个列表中,如网上商城页面中商品的分类列表、注册表单中下拉列表形式的地址选择等。这些信息大部分都被存储在数据库中以方便进行管理维护。如何将这些单个字段的所有值绑定到一个具有列表特性的控件中,这就要用到这节中将要介绍的复值数据绑定。在ASP.NET中,支持数据绑定的标准控件有以下几个:DropDownListListBoxCheckBoxListRadioButtonListBulletedList,5.5 数据源控件,ASP.NET中提供了多个数据源控件,分别获取不同的数据源中的数据。使用数据源控件进行数据获取后,可直接将该数据源控件作为新的数据源,这样以来,在进行数据绑定时,可不必关心与实体数据库进行交互的细节问题。本小节主要以SqlDataSource数据源控件为例进行介绍。将SqlDataSource控件与数据绑定控件结合使用,不必编写代码或只需编写少量代码,就可以从SQL数据库中检索数据,并将数据绑定到数据显示控件。,5.5.1 选择记录,可以将SelectCommand属性设置为SQL语句或存储过程,通过该SQL语句或存储过程来从数据库中进行数据记录的选择。使用SqlDataSource 数据源控件,来访问SQL Server 2005数据库的方法如下。,5.5.2 参数化命令,SqlDataSource 控件具有四个命令属性,可以设置这些属性以告诉 SqlDataSource 如何获得、插入、更新和删除它的数据。数据源控件可以接受输入参数,可以为其进行参数声明,当在运行时将值传递给这些参数。参数可以用来执行下列操作:为数据检索提供搜索条件;提供要在数据操作过程中插入、更新或删除的值;提供用于分页排序和筛选的值。借助参数,只需要少量代码,或不使用代码,就可对数据进行更新、删除等操作。可以将SelectCommand属性设置为SQL语句或存储过程。同样,InsertCommand、UpdateCommand和DeleteCommand属性也用于设置相应的SQL语句或存储过程,用于告诉SqlDataSource:使用哪些SQL语句来修改基础数据库中的数据。如下所示的代码中,就分别定义了这几个数据操作属性:,5.5 更新数据,数据修改由数据源控件执行,在无需另外编写代码的条件下,即可修改数据源的数据。这样以来,数据绑定控件无需有关数据库的特定信息即可支持更新操作。,5.5.1 使用LinqDataSource更新数据,使用LinqDataSource更新数据时,无需设置数据插入、更新和删除等操作命令,这些命令会自动生成。只需要启用其插入、更新和删除操作即可,这可通过将其相关属性设置为true来实现。代码就将使用LinqDataSource控件绑定到GridView中,实现数据的编辑和删除功能: ,5.5.2 使用SqlDataSource更新数据,使用SqlDataSource更新数据时,需要为其提供修改数据的SQL命令:InsertCommand属性指定用来向数据源中插入记录的SQL命令,UpdateCommand属性指定用于更新记录的命令,而DeleteCommand属性指定用于从数据源中删除记录的命令。如下所示的代码就配置了SqlDataSource的数据编辑命令:UpdateCommand=UPDATE Customers SET CompanyName = CompanyName, City = City WHERE CustomerID = CustomerID ,5.5.3 使用ObjectDataSource控件更新数据,使用ObjectDataSource控件更新数据时,需要指定进行更新操作的的数据对象方法:InsertMethod属性设置了向数据源中插入项时所调用的数据对象方法,UpdateMethod属性指定更新数据的数据对象方法,DeleteMethod属性指定用于从数据源中删除数据的数据对象方法。如下所示的代码,设置了ObjectDataSource控件进行数据更新的相关属性: ,5.5.4 更换数据源,可以将不同的数据源控件与页上的任意控件组合一起使用。另外,还可以更改数据绑定控件所使用的数据库或数据源,方法是将它的DataSourceID设置为另一个数据源控件。如下所示的代码中,先将GridView1的数据源控件设置为SqlDataSource2,然后又将GridView1的数据源控件设置为LinqDataSource1:this.GridView1.DataSourceID = SqlDataSource2;this.GridView1.DataSourceID = LinqDataSource1;,5.6 小结,本章主要介绍了几种数据绑定的方法,包括单个值的绑定和复值绑定。在单值绑定的部分,首先介绍了绑定表达式如何在数据绑定控件的模板中运用。同时还对Bind()方法与Eval()方法进行了重点讲解。然后使用实例介绍了如何绑定单值字段。在复值绑定部分,介绍了如何将某一字段的值绑定到列表控件中,注意在绑定时设

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论