第9章_数据绑定控件
- 格式:doc
- 大小:698.50 KB
- 文档页数:22
第一章测试1.模型(Model)是应用程序中用于处理应用程序数据逻辑的部分。
()A:对B:错答案:A2.HTML是一种用于制作超文本文档的简单标记语言。
()A:对B:错答案:A3.CSS可用于控制HTML和XML内容的数据交换形式。
()A:错B:对答案:A4.JavaScript是为适应静态网页的交互性而诞生的一种新的脚本(Script)语言。
()A:对B:错答案:B5.Ajax是指一种创建交互式网页应用的网页开发技术。
()A:对B:错答案:A第二章测试框架中包含编译器 csc.exe。
()A:错B:对答案:B2.处于同一个命名空间中的类必须有明确的相互关系。
()A:错B:对答案:A3.在C#中不存在全局方法和变量,所有的变量和方法都包含在类的定义中。
()A:对B:错答案:A4.C#标识符的首字符必须为字母、下划线或@。
()A:对答案:A5.声明数组时既指定了数组的名字和数组元素的类型,又开辟了内存空间。
()A:对B:错答案:B第三章测试1.类体由成员变量定义和成员方法定义两部分组成。
()A:错B:对答案:B2.C#修饰符按功能可分为两类:类修饰符和成员修饰符。
()A:错B:对答案:A3.构造方法的主要作用是完成对类的对象的初始化工作。
()A:对B:错答案:A4.析构方法能被重载,但不能被继承。
()A:对B:错答案:B5.用protected修饰的成员变量可以被3种类所引用:该类自身、该类的嵌套类及该类的子类。
()A:对B:错答案:A第四章测试1.HTML元素和属性是不区分大小写的,但通常约定标记符使用大写字母。
()A:错B:对答案:B2.是HTML文件头标记符,用来描述HTML首部的内容,其作用是说明文档的整体信息。
()A:对答案:A3.在HTML文档中,可以用回车、空格、Tab键来调整文档段落的格式。
()A:错B:对答案:A4.锚点标签定义元素仅限于文字。
()A:错B:对答案:A5.称为区隔标记,其作用是将页面分隔为不同的区域。
第一章1.填空题(1).NET Framework主要包括公共语言运行库CLR和类库。
(2)网站在编译时,首先将语言代码编译成微软中间语言MSIL。
(3)一台IIS Web服务器IP地址为210.78.60.19,网站端口号为8000,则要访问虚拟目录xxxy中default.aspx的URL为http://210.78.60.19.8000/xxxy/default.aspx。
(4)可以通过复制网站同步网站上的一个文件。
2.是非题(1)托管代码是以CLR为基础的代码。
(√)(2)3.5仍使用2.0引擎。
(√)(3).NET Framework 3.0是.NET Framework 3.5的一部分。
(√)(4) 3.5是边解释边执行的。
(×)(5)在Visual Studio 2008环境中开发网站必须安装IIS。
(×)3.选择题(1).NET Framwork3.5不包括(A)A. .NET Framework 1.1B. .NET Framework 2.0C. LINQD. AJAX(2)下面(D)网站在建立时要求安装Microsoft FrontPage服务器扩展。
文件系统 B. 本地IIS C. FTP站点 D.远程站点(3)发布网站后不可能存在的文件夹是(B)A.App_Data B.App_Code C.App_Themes D.bin第二章1.填空题(1)Visual Studio 2008 默认建立的XHIML文件类型是Transitional。
(2)利用XHTML建立一个链接到************邮箱的元素是<a href="mailto:************">……</a>。
(3)存放Web窗体页C#代码的模型有单文件页模型和代码隐藏页模型。
(4)单文件页模型中,C#代码必须包含于<script>…</script>之间。
WinForm数据绑定-简单绑定1数据绑定的意义在前面的文章中已经做了描述。
现在我们来具体了解一下数据绑定。
数据绑定被分为两个部分,(至少我是这样来分的)简单绑定和复杂绑定。
以一种简单的方式来理解的话,简单绑定是只控件和某个单一对象之间的绑定,而复杂绑定是指和集合(ArrayList, Array, DataTable, DataSet)之间的绑定,而复杂绑定中隐含着简单绑定。
所以我们必须先搞清楚简单绑定的想法(也是数据绑定实现的最基本的想法)。
前面描述过了数据绑定机制的想法是将数据和控件关联在一起的机制。
那对于一个单一对象而言什么是数据呢?对象本身其实就可能包含一定的数据。
比如我们知道的成员变量,它就在帮对象维持数据。
而对于数据绑定机制而言,它关心的是属性。
如果我们能将某个对象的属性和控件的某个属性关联在一起,那数据就可以自如的显示到控件中了。
所以对我的认识而言,我认为简单绑定做的事情就是将对象中的属性和控件的属性关联。
考虑一下的代码。
假设我定义了一个Person类,在这个类中我定义了三个属性FirstName, LastName, Age,我想将这三个属性分别显示在三个TextBox中。
如果不使用数据绑定我们需要的代码如下。
Person person = new Person("Cai", "Peng", 32);textbox1.Text = person.FirstName;textbox2.Text = stName;textBox3.Text = person.Age;这样做有什么问题吗?看来是没有什么问题,你的数据可以正常的显示在界面中。
问题就在与如果用户修改了textBox1中的数据,你的person对象中的FirstName的值也会更改吗?如果你想确保person.FirstName中的值和你的textBox1.Text的值一致的话你要怎么做?你必须编写相应的代码来完成。
1. 数据绑定(Binding)一般配置常用的绑定的目标(Dependency Object & associated Dependency Property,目标单元):内容控件目标:object ContentControl.Content集合控件目标:IEnumerable ItemsControl.ItemSource绑定器:Binding ( : BindingBase : MarkupExtension )Binding binding = new Binding();binding.ElementName = "WPF控件名称"; / binding.Source = …;binding.Path = new System.Windows.PropertyPath("路径串");绑定到源(Object & its Property):代码动态绑定:BindingExtensionBase FrameworkElement.SetBinding(DependencyProperty dp, BindingBase binding) (dp = ContentControl.ContentProperty, ItemsControl.ItemsSourceProperty, …)XAML举例:<Label Content=”{Binding …Path=…}”…> , <ListBox ItemsSource=”{Binding …Path=…}"> …({Binding}中单独出现Path时,“Path=”可以省略)取消绑定:BindingOperations.ClearBinding(bel1, ContentControl.ContentProperty);使用DataContext:设置某个单元的FrameworkElement.DataContext属性,为其子单元提供默认的绑定源(Source,ElementName,RelativeSource未设置的Binding),可通过代码和XAML设置。
第九章数据绑定控件 2.0技术依靠两种类型的服务器控件实现数据访问:数据源控件和数据绑定控件。
前者负责连接和访问数据库,而后者负责将从数据库中获取的数据显示出来。
数据绑定控件有很多,前面讲述数据源控件的时候,我们用到的GridView控件,就是一个功能强大、最为常用的数据绑定控件。
本章主要围绕 2.0中诸如GridView、DetailsView以及FormV iew控件等几个重要数据绑定控件的使用方法展开讨论。
9.1 数据绑定控件概述数据绑定控件主要用于在Web页面显示数据。
一般情况下,数据绑定控件与数据源控件进行绑定,以极其灵活的方式将数据源控件提供的数据资料显示出来。
本质上来说,数据绑定控件是将数据作为标记向发出请求的客户端设备或浏览器呈现的用户接口(UI)控件。
主要包括:1)、列表控件:以各种列表形式呈现数据;2)、AdRotator:可以将广告作为图像呈现在页面上;3)、复合控件:包括DetailView、FormView和GridV iew等控件;4)、分层控件:主要有TreeView、Menu等控件。
图9.1给出了数据绑定控件的层次结构。
图9.1 2.0 中的数据绑定控件的层次结构图中,BaseDataBoundControl是个抽象类,所有数据绑定控件都是从该抽象类派生的。
在这个抽象类中,定义了几个重要的属性和一个至关重要的方法成员。
1)、DataSource属性:指定数据绑定控件的数据来源,显示的时候程序将会从这个数据源中获取数据并显示;2)、DataSourceID属性:指定数据绑定控件的数据源控件的ID, 显示的时候程序将会根据这个ID找到相应的数据源控件,并利用这个数据源控件中指定方法获取数据并显示;3)、DataBind()方法:当指定了数据绑定控件的DataSource属性或者DataSourceID属性之后,再调用DataBind()方法才会显示绑定的数据。
并且在使用数据源时,会首先尝试使用DataSourceID属性标识的数据源,如果没有设置DataSourceID时才会用到DataSource属性标识的数据源。
也就是说DataSource和DataSourceID两个属性不能同时使用。
数据绑定控件显示格式丰富,包括常见的表格、树形、报表等多种表达形式;同时,这些控件又具有丰富的功能,譬如支持对数据资料的分页、排序、添加、修改、删除等操作。
9.2 GridView控件9.2.1 GridView控件简介GridView控件是早期DataGrid控件的更新,功能更强大。
她采用表格形式显示从数据源中获取的数据。
表9.1对GridView控件的功能进行了简单描述。
表9.1 GridView控件的功能描述GridView支持大量属性,这些属性属于如下几大类:行为、外观、样式、状态和模板等。
表9.2~表9.4描述了其主要的行为、外观、样式等属性。
表9.2 GridView控件的行为属性表9.3 GridView控件的外观属性表9.4 GridView控件的样式属性更多GridView控件属性,可在Visual Studio 2005设计窗体中查看。
通过在GridView控件属性窗口选中某一属性项,则系统即会在属性窗口的下方显示出对应属性项的简要说明信息。
GridView控件提供有一些重要的方法和事件,通过这些方法和事件,程序设计人员可以非常方便地对GridView控件进行控制,实现设计意图。
表9.5和表9.6描述了GridV iew控件常用的方法和事件。
表9.5 GridView控件常用方法表9.6 GridView控件常用事件9.2.2 GridView控件基本操作Visual Studio 2005在数据库支持方面做得非常好,GridView支持将SQL Server数据字段直接拖曳到网页设计界面,并自动建立好GridView与Sq1DataSource数据库连接的相关设置,这在以前是不可想象。
下面,我们以拖曳的方式创建GridView与Sq1DataSource数据库连接,从而轻松构造一个能够实现数据访问的Web页面。
例9.1 GridView基本操作。
1、以拖曳的方式创建GridV iew与Sq1DataSource控件关联。
(1)在V isual Studio 2005中创建一个新网站,命名为GridViewEx,选择“文件系统”存放方式,系统自动生成一个Default.aspx的文件,选择Default.aspx并切换至设计视图。
(2)开启服务器资源管理器,建立与SQL Server数据库的连接。
然后,展开Employees 数据表。
按住Ctrl键不放,以鼠标连续点击Employees数据表的EmployeeID、LastName、FirstName与Address四个字段。
并将这四个字段往Web Form拖曳过去。
最后放开鼠标按钮后,V isual Studio 2005会自动产生GridView及SqlDataSource控件,相关设置如图9.2所示。
图9.2 拖曳部分字段至Web窗体当然,我们完全可以把整表都拖曳到Web窗体中,Visual Studio 2005会自动完成所需配置。
(2)调试运行程序,结果正如我们预期,窗体上正确显示出从数据库中提取出来的有关记录。
如图9.3所示。
图9.3 GridView与Sq1DataSource绑定运行结果如果希望进行更复杂的操作,譬如添加排序和分页,启用编辑功能,实现简单的搜索功能等,借助于GridView控件一样可以轻松实现。
2、添加排序和分页(1)在前面设计好的页面窗体上选择GridView控件,如果没有显示“GridView 任务”快捷菜单,用鼠标右键单击GridView控件,然后,在系统弹出的快捷菜单上选择“显示智能标记”。
(2)在“GridView 任务”快捷菜单上,选择“启用排序”、“启用分页”复选框,如图9.4所示。
图9.4 “GridView 任务”快捷菜单可以看出,GridView控件中列标题变为链接,运行时,单击对应列标头可以实现双向排序,因为启用了分页选项,GridView控件下面添加了页码的链接。
当然,我们可以通过观察GridView控件的属性,查看所做的设置。
如果窗体中看不见属性窗口,可以先选中GridView控件,再按F4功能键,控件属性窗口就会出现,如图9.5。
图9.5 GridView属性窗口可在属性窗口中直接修改各属性值,譬如,可以设置每页记录的个数,默认值每页显示10条记录。
3、对记录添加编辑和删除功能同样,也可以通过简单设置,不写一行代码,实现编辑、删除记录的功能。
要想启用编辑、删除记录的功能,需要SqlDataSource数据源控件的UpDate功能支持。
在“GridView 任务”快捷菜单上(图9.4),勾选“启用编辑”、“启用删除”复选框。
如果没有这两个选项,则需要重新配置以下数据源控件。
操作如下:(1)设计窗体上选择GridView控件,确保显示“GridView 任务”快捷菜单。
选择“配置数据源”,在向导中切换到“配置Select语句”页面,然后,单击“高级”按钮。
在弹出的“高级SQL生成选项”对话框中,勾选“生成INSERT、UPDA TE和DELETE语句”复选框,如图9.6。
(2)设置完毕“高级SQL生成选项”对话框,再次打开GridView控件的“GridView 任务”快捷菜单。
发现快捷菜单中将多出了两个选项:“启用编辑”、“启用删除”。
勾选相应项,并再次运行程序,效果如图9.7所示。
图9.6 高级SQL语句生成选项图9.7 运行结果如果希望在数据库中进行筛选查找某些符合条件的记录,同样可以通过修改SqlDataSource数据源控件的“配置Select语句”向导,通过单击“WHERE”按钮,从而添加WHERE子句,实现带条件查询。
比照前面的操作,实现起来并不复杂,这里,具体操作步骤就不再演示了。
通过这个例子,我们感受到了GridView控件高度自动化的功能,同时,在灵活性上也毫不逊色。
9.2.3 格式化GridView控件虽然大多数情况下,采用默认值属性就可以满足要求,但有时候可能需要对GridView 控件的外观样式进行定制。
定制GridV iew控件的样式,主要有以下几种方式:1、采用GridView内置格式方案选中GridView控件,在“GridView 任务”快捷菜单上选择“自动套用格式”,系统即会弹出“自动套用格式”对话框,如图9.8所示。
图9.8 “自动套用格式”对话框可以看出,系统提供了多种风格的样式供设计人员选择。
2、自定义“列”格式除此之外,如果希望针对表格的某一列进行自定义的操作,也不麻烦,选中GridView 控件,在“GridView 任务”快捷菜单上选择“编辑列”,系统即会弹出“字段”对话框,如图9.9所示。
图9.9 “字段”对话框在此对话框中,可以对每一列的格式进行详细的设置。
比如,可以设置BirthDate字段对应的列标题为汉字“出生日期”,字段显示为短日期格式:{0:d}等。
“字段”对话框中可以设置字段的显示格式,常用格式化表达式如下:(1){0:C}:货币;(2){0:D4}:由0填充的4个字符宽的字段中显示整数。
(3){0:000.0}:四舍五入小数点保留第几位有效数字。
(4){0:N2}:小数点保留2位有效数字。
(5){0:N2}%:小数点保留2位有效数字加百分号。
(5){0:D}:长日期;{0:d}短日期。
需要说明的是:在GridView中的BoundField使用DataFormatString必须设置属性HtmlEncode="False",否则不起作用,该属性默认true,这使得DataFromatString失效;如果需要使用日期类型的格式化字符串,必须数据实体中对应的字段也应该日期类型的。
其实,很多属性都可以直接通过GridView控件的属性窗体进行设置,譬如,直接在属性窗体中点击Columns属性项对应的按钮,一样会弹出图9.9所示的“字段”对话框。
9.2.4 GridView控件事件应用GridView控件提供了大量的事件,恰当利用事件,可以完成许多重要的工作,下面我们以RowDeleting 事件为例演示GridView控件的事件编程。
在单击某一行的“删除”按钮时,在GridView 控件删除该行之前会发生RowDeleting事件。
例9.2 使用RowDeleting 事件取消删除操作。
(1)为了在窗体中显示事件响应信息,从工具箱中向Web窗体中拖入一个标签,命名为Message,调整到合适的位置。
(2)在Web窗体的设计界面,选中GridView控件,然后,在对应的“GridView控件属性”窗体中点击事件按钮,并在事件列表中选RowDeleting事件。