第5章数据绑定技术_第1页
第5章数据绑定技术_第2页
第5章数据绑定技术_第3页
第5章数据绑定技术_第4页
第5章数据绑定技术_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

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

文档简介

第5章数据绑定技术,第5章数据绑定技术,5.1数据绑定概述5.2Windows应用程序的数据绑定5.3Web应用程序的数据绑定,5.1数据绑定技术概述,数据绑定技术是一种将用户界面的界面控件与数据源的数据捆绑在一起的技术,使用数据绑定可以在界面控件中通过完成一些设置即可自动显示数据源中的数据,甚至可以在界面控件中直接编辑数据源中的数据,而不需要手动编程。,.NET的数据绑定技术,在.NET平台下,数据绑定技术有了进一步的发展,主要的改进包括:数据源更为多样。支持传统数据源、各种数据对象、数组、支持IList接口的各种对象、实现了IEnumerable接口的各种对象(需要用到BindingSource控件)、甚至普通的.NET对象。Web开发中也支持数据绑定。数据绑定可以绑定到控件的除Text属性之外的更多属性上,如控件大小、可见属性、控件背景色等等。,5.2Windows应用程序的数据绑定,菜单“数据|添加新数据源”,籍由数据库自动创建类型化的数据集(DataSet)和类型化的适配器(TableAdapter)菜单“数据|显示数据源”,可以拖放数据表到窗体上,5.2.1使用VS2008快速生成数据绑定程序,在VisualStudio2008的文件菜单中选择新建一个Windows窗体应用程序项目。在VS2008中选择“数据添加新数据源”,打开数据源配置向导,用来为当前应用程序添加类型化数据集。在数据源配置向导对话框中选择数据源为数据库,然后点击下一步。在选择数据连接窗口中点击新建连接按钮,会弹出建立数据库连接的窗口。保存新建连接的连接字符串,保存以后,当前应用程序中的其它数据访问程序也都可以使用这个数据连接字符串。选择需要访问的数据库表、视图、存储过程及函数等。执行菜单“数据显示数据源”显示添加的数据源。将数据源拖动到窗口上,自动生成数据绑定的程序。,设置绑定后自动生成的对象,添加数据源和绑定后,VS自动生成类和窗体对象:根据TeachingManagementDataSet生成一个类型化的数据集对象“teachingManagementDataSet”。大写开头的是类名,小写是类的实例,即对象。一个“teacherBindingSource”控件,用来实现界面控件和数据集的绑定。一个“teacherBindingNavigator”控件,用来操作数据。其中包含的图形按钮功能依次是:移动到首记录、移动到上一记录、记录当前位置、表的记录总数、移动到下一记录、移动到末记录、增加新记录、删除当前记录和保存修改。一个“teacherTableAdapter”对象,用来访问Teacher数据表的数据。一个“tableAdapterManager”对象,用来管理数据集中多数据表的保存。,5.2.2类型化数据集和TableAdapter,数据库的名字是TeachingManagement,则类型化数据集的类名就是TeachingManagementDataSetTeachingManagementDataSet.xsd文件中定义的类主要有:一个TeachingManagementDataSet类,继承于DataSet类型一个TableAdapterManager类每个加入数据源的数据表对应生成一个DataTable类(表名DataTable)、一个DataRow类(表名Row)、一个TableAdapter类(表名TableAdapter)、一个事件参数类和一个委托类。例如:根据教师表(Teacher)自动生成以下类:TeacherDataTable,TeacherRow,TeacherTableAdapter,TeacherRowChangeEvent和TeacherRowChangeEventHandler。,1.非类型化数据集,前面介绍的DataSet是非类型化的数据集,访问数据表需要使用索引下标或名称(表名/列名)来指定所要访问的数据表或表中的数据列,书写代码繁琐,编译程序无法辨错。例如:DataRowaTeacher;/无类型的行对象DataTableteachers;/无类型的表对象teachers=ds.Table“Teacher”;/表名可能写错aTeacher=teachers.Rows0;/第一条记录aTeacher“TeacherName”=“赵飞”;/列名可能写错,2.类型化数据集,而类型化的数据集对象则直接使用成员属性来访问。书写代码时有智能感知功能,编译能发现错误。一个强类型的DataTable,它的所有的字段都是通过属性的形式来实现的。访问的代码就会象这样:DataTable.Rowsindex.columnName类型化的DataSet,则是VisualStudio基于数据库schema为你生成的一个类,其成员的类型都是由这个schema决定的。类型化的DataSet本身,是由继承于ADO.NET中DataSet,DataTable,和DataRow类的子类组成的,3.类型化数据集的构成,派生于基本的数据集类,通过类视图可以查看自动生成的类代码,类型化数据集对象的好处,编写程序时,可使用VS的智能提示。编译程序时,可进行类型检查,防止错误。运行时不用先从数据库获取架构(结构)信息,即可使用。(弱类型要先从数据库fill后或手工创建后,才有结构信息)已经自动封装了数据库的一些约束。,类型化数据集的使用,表、列、行等对象都是和数据库表的结构相对应,例如:/类型化的行对象TeachingManagementDataSet.TeacherRowaTeacher;/类型化的表对象TeachingManagementDataSet.TeacherDataTableteachers;/类型化的数据集对象teachers=teachingManagementDataSet.Teacher;aTeacher=teachers0;/第一条记录aTeacher.TeacherName=“赵剑;/修改教师姓名,4.TableAdapter对象,TableAdapter类用来操作类型化DataTable中的数据,每个DataTable类会对应一个类型化的TableAdapter类,负责该DataTable的数据检索和数据保存。例如:TeacherTableAdapter负责从数据库检索数据填充TeacherDataTable,还负责把TeacherDataTable中的数据修改保存到数据库中。TableAdapter类中常用的方法包括:Fill()方法和GetData()方法:用于获取数据Insert()方法:用于增加数据行Delete()方法:用于删除数据行若干个Update方法:包括可以直接修改的Update方法,可以保存DataTable中数据的Update方法等。,15,TableAdapter的作用,TableAdapter提供应用程序和数据库之间的通信。TableAdapter连接到数据库,执行查询或存储过程,并返回用返回数据填充的新数据表或是用返回数据填充现有DataTable。TableAdapter还用于将更新数据从应用程序发送回数据库。,16,TableAdapter的方法,TableAdapter.Fill用TableAdapter的SELECT命令的结果填充TableAdapter的关联数据表。TableAdapter.Update将更改发送回数据库。TableAdapter.GetData返回一个用数据填充了的新DataTable。TableAdapter.Insert在数据表中创建新行。TableAdapter.Delete删除一行。,17,TableAdapter的命名空间,TableAdapter是使用“数据集设计器”设计的,但生成的TableAdapter类并不是作为DataSet的嵌套类生成的。它们位于特定于每个数据集的独立命名空间中。例如,如果您有一个名为TestDataSet的数据集,与TestDataSet中的DataTable关联的TableAdapter将位于TestDataSetTableAdapters命名空间中。,添加记录,/声明并实例化一个DataTable对象和一个TableAdapter对象TeacherTableAdapterteacherTableAdapter=newTeacherTableAdapter();TeacherDataTableteachers=newTeacherDataTable();/新建一行,一行数据可以看成一个Teacher对象TeacherRowteacher=teachers.NewTeacherRow();/为新数据行的各个列赋值teacher.TeacherID=000601;teacher.TeacherName=李辉;teacher.Sex=男;teacher.Title=副教授;teacher.Major=计算机应用;teacher.DepartmentID=6;/将新建数据行加入TeacherDataTable数据表,并使用TableAdapter保存修改teachers.AddTeacherRow(teacher);teacherTableAdapter.Update(teachers);,添加记录,以上代码也可以替换成:/使用TableAdapter直接添加TeacherTableAdapterteacherTableAdapter=newTeacherTableAdapter();teacherTableAdapter.Insert(000601,6,李辉,男,null,副教授,计算机应用);,20,删除记录,删除数据库记录TeacherDataTableteachers;TeacherTableAdapterteacherTableAdapter=newTeacherTableAdapter();/获取Teacher表所有数据行,或者使用Fill方法teachers=teacherTableAdapter.GetData();/获取第一行数据TeacherRowteacher=teachers0;/删除本行数据teacher.Delete();/保存删除teacherTableAdapter.Update(teacher);,修改记录,TeacherDataTableteachers;TeacherTableAdapterteacherTableAdapter=newTeacherTableAdapter();/获取Teacher表所有数据行,或者使用Fill方法teachers=teacherTableAdapter.GetData();/获取第一行数据TeacherRowteacher=teachers0;/修改某列teacher.TeacherName=王辉;/保存修改teacherTableAdapter.Update(teacher);,查询数据,TeacherDataTableteachers;TeacherTableAdapterteacherTableAdapter=newTeacherTableAdapter();/获取Teacher表所有数据行,或者使用Fill方法teachers=teacherTableAdapter.GetData();/获取第一行数据TeacherRowteacher=teachers0;/访问第一行的某列MessageBox.Show(teacher.TeacherName);,5.增强TableAdapter的功能,可以根据需要为TableAdapter类添加更多的数据访问方法,可以是增删改查任意操作。在数据集设计器中,选择某一个TableAdapter,在TableAdapter上点击鼠标右键,选择“添加查询”。,5.2.3Windows窗口应用程序的数据绑定,Windows窗口可以使用两种类型的数据绑定:简单绑定:指将一个控件绑定到单个数据元素(如访问数据集表的某指定列)的能力,常用的绑定控件是TextBox或Label。复杂绑定:将一个控件绑定到多个数据元素(如访问数据表的多行)的能力,复杂绑定又被称作基于列表的绑定。支持复杂绑定的控件的有DataGridView、ListBox和ComboBox等控件,这些控件都使用DataSource属性来指定要绑定的数据源。,1.简单绑定,如数据记录的某个字段绑定到TextBox或Label控件上。使用控件的DataBindings属性:TextBox1.DataBindings.Add(Text,teachers,TeacherID,true);将文本框的“Text”属性与数据表Teachers的TeacherID列进行绑定。上面代码也可以写成:Bindingbind=newBinding(Text,teachers,TeacherID,true);TextBox1.DataBindings.Add(bind);Bingding对象的构造函数及其Add方法包含多个参数,其中第一个参数指定绑定的控件属性,第二个参数指定绑定到的数据源,第三个参数指定了绑定到的列。,2.复杂绑定,支持多字段绑定的控件的有DataGridView、ListBox和ComboBox等控件,这些控件都使用DataSource属性来指定要绑定的数据源。比如,设置DataGridView控件绑定到教师表,书写程序如下:dataGridView1.DataSource=teachers;如果要绑定的数据表在一个DataSet对象中,DataSource属性指定数据集对象,DataMember属性设置要绑定的数据集中表的名称。源代码如下:dataGridView1.DataSource=teachingManagementDataSet;dataGridView1.DataMember=“Teacher”;,5.2.4BindingSource控件,使用BindingSource组件,指定窗体要绑定的数据源,窗体上的其他控件再绑定到该BindingSource组件。BindingSource组件作为界面控件和真正数据源之间的桥梁,为界面控件提供了一个统一的绑定各种数据源的方法,而不需要界面控件去面对各种不同类型的数据源。,1.使用BindingSource控件进行数据绑定,使用BindingSource组件进行数据绑定的方式是先将该组件和数据源进行绑定,然后再将窗体控件和BindingSource组件绑定。设置BindingSource与指定数据集的的绑定,代码如下:BindingSource1.DataSource=teachingManagementDataSet;BindingSource1.DataMember=Teacher;设置界面控件(如TextBox控件)与BindingSource的单字段绑定,代码如下:TeacherIDTextBox.DataBindings.Add(Text,bindingSource1,TeacherID);设置界面控件(如DataGrid控件)与BindingSource组件的多字段绑定,代码如下:dataGridView1.DataSource=bindingSource1;,ComboBox控件的数据绑定,使用ComboBox控件进行数据绑定操作时,需要对该控件的多个属性设置数据绑定和使用,这些属性有各自不同的含义:DataSource属性:指定需要绑定的数据源。DisplayMember属性:指定数据源中需要列表前台显示的列。ValueMember属性:指定数据源中需要列表后台取值的列。即列表框的显示和取值来自不同的列,例如列表显示的是教师姓名,而获取列表选中值是教师编号。Text属性:获取当前选中的列表框文本,其值与DisplayMember绑定列对应。SelectedValue属性:显示或设置当前文本值所绑定的数据表列。,例5-4:ComboBox绑定示例,窗口显示教师信息,其中所属的院系采用ComboBox控件,窗口看到的是院系名称,但教师表时保存的是院系代码。以下代码需使用两个BindingSource组件:teacherBindingSource.DataSource=(newTeacherTableAdapter().GetData();ComboBox1.DataBindings.Add(SelectedValue,teacherBindingSource,DepartmentID);departmentBindingSource.DataSource=(newDepartmentTableAdapter().GetData();ComboBox1.DataSource=departmentBindingSource;ComboBox1.DisplayMember=DepartmentName;ComboBox1.ValueMember=DepartmentID;,2.使用BindingSource进行数据遍历,BindingSource和数据遍历相关的主要属性有:Position属性:用来获取或者设置当前数据记录的索引号。Count属性:用来获取当前数据源的记录总数。Current属性:可以获取当前数据源的记录,类型是DataRowView。TeacherRowteacher=(TeacherRow)(DataRowView)this.teacherBindingSource.Current).Row;MessageBox.Show(teacher.TeacherName);BindingSource和数据遍历有关的方法有:MoveFirst()方法MoveLast()方法MovePrevious()方法MoveNext()方法,3.使用BindingSource进行数据修改,使用数据绑定后,既可以使用窗体控件自动显示数据源的数据,也可以通过直接编辑窗体控件的内容来修改数据。当用户通过窗体控件修改数据之后,需要编写下面三行代码实现数据的保存,即数据保存到数据库中。this.Validate();this.teacherBindingSource.EndEdit();this.teacherTableAdapter.Update(this.teachingManagementDataSet);this.Validate()方法是窗体的方法,作用是触发窗体上最后一个数据输入窗体控件的Validating事件。,4.使用BindingSource进行数据排序和过滤,设置BindingSource的Sort属性可以实现排序。Sort属性值是字符串类型,字符串包含数据源中需要排序的列名,列名后面还可以加上ASC表示升序,加DESC表示降序,注意中间加空格。下面代码设置了按“TeacherName”数据列升序排列。teacherBindingSource.Sort=TeacherNameASC;/先按性别升序排序,再按教师姓名升序排序。teacherBindingSource.Sort=SexASC,TeacherNameASC;设置BindingSource的Filter属性则可以进行数据过滤。通过对Filter属性设置条件字符串表达式。下面的代码设置了通过BindingSource只能访问性别为“男”的数据项。teacherBindingSource.Filter=Sex=男;,5.使用BindingNavigator,BindingNavigator控件是实际上就是一个ToolStrip控件(工具条),控件上默认有记录移动、记录定位、记录添加和记录删除等按钮。对于BindingNavigator控件上默认包含的每个按钮,已经自动对应于BindingSource组件的一个数据操作方法,不需要编写代码。可设置该控件绑定的数据源:teacherBindingNavigator.BindingSource=teacherBindingSource;,6.利用BindingSource实现主从表显示,建立主从表的关系(具有外键关联)添加两个BindingSource组件,分别指定主表和从表bindingSource1.DataSource=teachingMenagementDataSet;bindingSource1.DataMember=Department;bindingSource2.DataSource=bindingSource1;bindingSource2.DataMember=FK_Teacher_Departm_1B0907CE;两个DataGridView分别绑定到不同BindingSource组件,7.BindingSource的事件,8.使用TableAdapterManager,TableAdapterManager是VisualStudio2008中的一个新组件,它是在使用设计器生成类型化数据集的时候,由VisualStudio2008自动生成的一个类,它以类型化数据集和TableAdapter为基础,提供了为数据集中所有的数据表保存数据的功能。数据集中的所有数据表的所有修改都可以通过它的UpdateAll()方法来保存,方法的参数就是整个数据集。类型化数据集会生成一个TableAdapterManager类。它对数据集中各个数据表的保存还是通过数据表对应的TableAdapter对象实现的。,5.3Web应用程序的数据绑定,在Web窗体网页中可以用可视化的方式添加各种服务器端控件,这些控件能够通过绑定与各种数据源连接,显示、编辑更改数据源的数据。,5.3.1数据绑定及绑定表达式,数据绑定有三种方式:绑定单个数据使用控件模板绑定一组数据(GridView、DetailView、FormView、ListView)使用数据绑定字段,绑定单个数据,使用“”将返回单个数值的表达式放在其中即可。例如:userName变量是网页的一个实例变量:publicstringuserName=张三;可以在网页的任何位置放置如下代码,如:欢迎你:在执行Page对象的DataBind方法时,才执行数据绑定。,2.绑定一组数据,使用控件模板绑定一组数据时,主要是指将ASP.NET控件绑定到一个包含多组数据的数据源,如数据库的表等。使用“”配合Eval()和Bind()方法对数据库的数据进行数据绑定,还可以使用XPath()方法绑定XML数据。绑定一组数据时必须要配合GridView、DetailView、FormView、ListView、DataList和Repeator这类能操作多行多列数据、并且支持模板的的ASP.NET控件来一起使用。,3.使用数据绑定字段,只能在GridView和DetailView这类支持数据绑定字段的控件中使用,可以直接与数据源中的数据字段进行绑定。设定数据源,可以有两种:控件属性DataSource和DataMember设定数据源,其中DataSource可以指定一个DataTable或者DataSet,如果是DataSet,则还需要DataMemeber指定具体的DataTable控件属性DataSourceID设定数据源,DataSourceID指定一个数据源控件。,数据控件的DataSource和DataMember属性,使用GridView控件的DataSource和DataMember属性绑定数据集的例子如下:stringsql=select*fromteacher;SqlDataAdapterda=newSqlDataAdapter(sql,connStr);DataSetds=newDataSet();da.Fill(ds,”Teacher”);GridView1.DataSource=ds;GridView1.DataMember=Teacher;GridView1.DataBind();,5.3.2数据源控件,类似与Windows应用程序中的BindingSource控件,Web应用程序也提供了数据源控件。在.NETFramework3.5中包含的数据源控件有:SqlDataSource,用来访问ADO.NET的数据源,主要是访问SQL关系型数据库,包括ODBC数据源、OLEDB数据源、SQLServer数据库、Oracle数据库等。ObjectDataSource,用来访问业务对象(BusinessObject)或者其它能够返回数据的类。AccessDataSource,用来访问Access数据库。XmlDataSource,用来访问内存中或文件中的XML文档SiteMapDataSource,用来访问站点地图数据。LinqDataSource,用来访问使用LINQ查询返回的数据。EntityDataSource,用来访问ADO.NETEntityFramework的数据源。,1.数据源控件SqlDataSource,使用数据源控件进行绑定时,不需要再执行网页或数据绑定控件的DataBind()方法只有当需要重新检索数据时才执行数据绑定DataBind()方法,2.SqlDataSource的用法,新建一个SqlDataSource数据源控件配置此数据源访问一个数据表添加一个GridView控件绑定到此数据源控件。配置GridView控件支持分页、排序、修改、删除和选择功能设置自动套用格式设置选择行模式增加一个FormView控件来额外支持添加,SqlDataSource的代码结构,DeleteCommand=DELETEFROMCourseWHERECourseID=CourseIDInsertCommand=INSERTINTOCourse(CourseID,CourseName,CourseHours,CourseType,DutyTeacherID)VALUES(CourseID,CourseName,CourseHours,CourseType,DutyTeacherID)SelectCommand=SELECT*FROMCourseUpdateCommand=UPDATECourseSETCourseName=CourseName,CourseHours=CourseHours,CourseType=CourseType,DutyTeacherID=DutyTeacherIDWHERECourseID=CourseID,SqlDataSource的属性,以上代码中可以看到,SqlDataSource控件定义了4个属性,分别是SelectCommand、InsertCommand、UpdateCommand和DeleteCommand,用来定义数据检索和修改时使用的SQL语句,并且定义了在执行数据操作时用到的参数。,5.3.3数据控件的绑定,ASP.NET主要提供一下3中数据控件:GridView控件:表格控件FormView控件:表单控件DetailsView控件:详细记录控件,1.使用GridView显示数据,建立一个SqlDataSource控件。然后设置GridView的DataSourceID属性为该控件,(或者在属性窗口设置),即可实现数据绑定。GridView控件与SqlDataSource控件绑定后,会自动根据数据源的结构设置好GridView的各个列。通过SqlDataSource的设置可完成数据的增删改操作。,例5-9显示教师信息,配置SqlDataSource数据源为Teacher表将GridView与SqlDataSource绑定设置行颜色为灰色,选中行颜色为黄色可以设置表头列名为中文,GridView控件,设置GridView控件:启用分页功能、排序功能和选择功能。在页面上点击页号可以显示某一页的数据,默认情况下GridView一页显示10行数据,如果要设置每页显示的数据行数,可设置GridView的PageSize属性。点击列的标题,可以按此列进行排序,第一次点击按正序进行排列,第二次点击按逆序排列。,GridView的常用属性,GridView有以下常用属性:RowStyle属性:用于设置每行的显示效果。SelectedRowStyle属性:设置选中行的显示样式,如背景色(BackColor)和RowStyle中的背景色不同即可。HeaderStyle属性组:用于设置表格标题栏的显示效果。PagerStyle属性:设置页号显示效。AlternatingRowStyle属性:设置交替行的显示效果。FooterStyle属性:设置表格页脚(Footer,默认不显示)的显示效果。,GridView列的设置,点击GridView的智能标记,选择“编辑列”,打开的对话框可以设置每个绑定列的属性,比如HeaderText属性可设置表头列名,每列的SortExpression属性可以指定排序表达式。每个数据列的显示格式也可以进行设置。例如指定日期的显示格式为“年-月-日”的格式,通过设置列的DataFormatString属性为“0:yyyy-MM-dd”。代码如下:同时设置属性HtmlEncode的值为“False”,例5-9教师信息的部门号显示为部门名称,要实现这种显示效果需要对SqlDataSource控件重新配置数据源,修改查询的SQL语句为:SELECTTeacherID,DepartmentID,DepartmentName,TeacherName,Sex,BirthDay,Title,MajorFROMTeacherJOINdepartmentONteacher.DepartmentID=department.DepartmentID,2.GridView显示查询结果,例5-11按部门查询教师信息。添加一个TextBox输入部门编号,添加一个按钮(无需为按钮编写程序,因为按钮按下后会启动一次回送)为SqlDataSource的查询语句添加参数设置参数从TextBox获取,SqlDataSource控件的参数化查询,修改SqlDataSource查询命令的SQL语句如下:SELECTTeacherID,DepartmentID,DepartmentName,TeacherName,Sex,BirthDay,Title,MajorFROMTeacherJOINdepartmentONteacher.DepartmentID=DepartmentIDDepartmentID就是添加的查询参数。对SqlDataSource进行数据源配置时,可以选择参数来源,不同选项的含义说明如下:None:没有设置参数来源,需要编程提供参数值Cookie:从浏览器的Cookie中取值Control:从ASP.NET控件的属性中取值(或者页面的属性值)Form:从提交的表单中取值(一个表单字段)Profile:表示一个配置文件属性值QueryString:从查询字符串的字段中取值(Url后面带的查询字符串)Session:从会话变量中取值(比如,会话中保存的当前用户名),GridView显示查询结果,使用下拉列表选择部门名称进行查询再添加一个SqlDataSource,配置数据源为department表添加DropDownList控件,绑定到上述SqlDataSource上,设置显示DepartmentName字段,取值DepartmentID字段设置DropDownList控件AutoPostBack,保证每次选择启动一次回送设置原来的SqlDataSource的参数来自于DropDownList,SqlDataSource控件,为参数赋值可以有多种方式,具体如下:None没有设置参数来源,需要编程提供参数值Cookie从浏览器的Cookie中取值Control从ASP.NET控件的属性中取值(或者页面的属性值)Form从提交的表单中取值(一个表单字段)Profile表示一个配置文件属性值QueryString从查询字符串的字段中取值(Url后面带的查询字符串)Session从会话变量中取值(比如,会话中保存的当前用户名)对SqlDataSource进行数据源配置时,会有一个“定义参数”的窗口,可以定义参数的来源,例5-12使用主从样式显示部门和教师,添加部门表的SqlDataSource2添加部门表的GridView2,启用选定内容(每行自动添加选择命令)设置教师表的SqlDataSource的查询参数来自于GridView2,默认其SelectedValue属性为参数值,该属性表示当前选中行的主键字段值,即DepartmentID某个部门没有教师信息,则GridView1在页面不出现,可以设置其EmptyDataTemplate,即空白数据模板,例5-13对男性教师采用高亮显示,如果要高亮显示符合特定条件的行,比如,将性别为“男”的教师用其他颜色显示,需要编写GridView控件RowDataBound事件的处理程序:protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)if(e.Row.RowType=DataControlRowType.DataRow)stringsex=(string)DataBinder.Eval(e.Row.DataItem,Sex);if(sex=男)e.Row.BackColor=System.Drawing.Color.Red;,GridView的行,每行有一个rowType表示类型:DataRow:数据行Header:标题行Footer:标脚行NullRowPagerSeparator,3.使用GridView控件编辑数据,GridView添加编辑和删除的功能,首先要在SqlDataSource控件中支持修改和删除,这需要在配置SqlDataSource时(见图5-37)选中“生成Insert、Update、Delete语句”,其次需要点击GridView的智能标记,选中“启用编辑”和“启用删除”。注意:数据表一定要有主键,否则不能支持修改和删除。,GridView控件的模板,在GridView控件里可以包含多个模板,使用模板可以自定义GridView的显示模式,每个模板是在GridView处于不同状态时的显示样式ItemTemplate是当GridView显示数据时的显示模板EditItemTemplate是当GridView控件的某一行进行编辑时使用的显示格式EmptyDataTemplate则是当GridView没有数据时的显示格式。,EmptyDataTemplate模板,使用EmptyDataTemplate来设置当GridView没有数据时的显示文本。在选择部门时,如果本部门没有教师,显示提示“该部门没有教师信息!”,例5-14使用下拉列表输入教师

温馨提示

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

评论

0/150

提交评论