ASPNET开发与应用教程第六章数据控件
- 格式:ppt
- 大小:302.00 KB
- 文档页数:8
数据绑定控件详解ListBox、GridView、Repeater这三个数据绑定控件的“⾼效分页”,ListBox和GridView内置的有分页,但是其效率太低了,少量的数据还可以,⼤量的数据根本就没法⽤,Repeater控件本⾝不提供分页,但是在实际的开发中可能也会有⽤到分页,所以也会给⼤家讲⼀下,Repeater的分页。
好了,现在开始进⼊正题,先从⽐较常⽤的控件说起。
⼀、GridView控件主要特点:⽀持删、改,排序、分页、外观设置、⾃定义显⽰数据缺点:影响程序性能、不⽀持插⼊操作这个控件可以以表格形式(table标签)显⽰、编辑和删除多种不同的数据源(例如、XML⽂件以及集合等)中的数据。
GridView控件功能⾮常强⼤,如果需要,编程者可以不⽤编写任何代码,通过VS 2008拖拽,并从属性⾯板设置属性即可,还可以完成如分页、排序、外观设置等功能。
虽然功能⾮常齐全,但程序性能将受到影响,在页⾯中最好不要过多地使⽤该控件。
当然,如果需要⾃定义格式显⽰各种数据,GridView控件也提供了⽤于编辑格式的模板功能,但是不⽀持数据的插⼊。
图⽰:⼆、ListView控件主要特点:提供了增、删、改、排序、分页等功能,还可以⽀持⽤户⾃定义模板缺点:影响程序性能、⼤数据分页效率低ListView控件会按照编程者编写的模板格式显⽰数据。
与DataList和Repeater控件相似,ListView控件也适⽤于任何具有重复结构的数据。
不过,ListView控件提供了⽤户编辑、插⼊和删除数据等数据操作功能,还提供了对数据进⾏排序和分页的功能,只需要在VS 2008中直接设置即可,不需要编写代码,这点⾮常类似于GridView控件。
可以说,ListView既有Repeater控件的开放式模板,⼜具有GridView控件的编辑特性。
ListView控件是3.5新增的控件,其分页功能需要配合DataPager 控件实现。
ASPNET 五大数据控件1. 插入功能方面:DetailsView 和FormView 具有插入功能,其它控件没有2. 模板DataList\FormView\Repeater 三种必须编辑模板,而GridView 和DetailsView 只有在将列转换成模板列以后才会显现各种模板.3. 自动分页功能GridView ,DetailsView 和FormView 差不多上2.0 版本新增控件,内置了分页,排序等等功能,其他需要手工定义4. 数据出现方式: GridView,DataList,Repeator 用于出现多列数据,DetailsView,FormView 用于出现单列数据,即常用的数据明细.DataList和Reapter都需要编辑模板列,而在模板列当中能够添加Text Box,同时能够指定TextBox的ID从而实现提取用户输入的值,然而Data Grid 和GridView 两个件是不需要编辑模板的,它的编辑功能是自动生成的我们无法明白那些文本框的ID ,也就无法通过ID 来猎取用户的输入,那么能够通过对单元格的引用来实现:private void DataGrid1_UpdateCommand(object source,xx){stri ng bkid二DataGrid1.DataKeys[e.ltem」teml ndex].toStri ng();〃提取主键string bktitle=((TextBox)e.ltem.Cells[1].Controls[0]).Text;// 提取用户的输入}一. 进入编辑状态:DataList1.EditItemIndex = e.Item.ItemIndex;DataGrid1.EditItemIndex = e.Item.ItemIndex;GridView1.EditIndex = e.NewEditIndex;DetailsViewl.Cha ngeMode(DetailsViewMode.Edit);// 进入编辑状态DetailsViewl.Cha ngeMode(DetailsViewMode.Read On ly);//退出编辑状态二. 设置主键:DataList1.DataKeyField = "bkid";DataGrid1.DataKeyField = "bkid";string[] str={"bkid"};GridView1.DataKeyNames = str;三. 提取主键:string bkid = DataList1.DataKeys[e.Item.ItemIndex].ToString();//DataLis t string bkid = DataGrid1.DataKeys[e.Item.ItemIndex].ToString();//DataGr id string bkid = GridView1.DataKeys[e.RowIndex].Value.ToString();//Grid Viewstring bkid = DetailsView1.DataKey[0].ToString();四. 查找控件:string bktitle = ((TextBox)e.Item.FindControl("txtTile")).Text;//DataListstring bktitle = ((TextBox)e.Item.Cells[1].Controls[0]).Text;//DataGridstring bktitle = ((TextBox)GridView1.Rows[e.RowIndex].Cells[1].Controls[0]).Text;string bktitle = ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Te xt;注意查找控件有两种方法:(各数据绑定控件的都能够用下面两种方法进行查找)1.如果明白控件的ID 能够用这种方法((TextBox)e.Item.FindControl("txtTile")).Text;// 这是查找2.如果不明白控件的ID 可用这种方法((TextBox)e.Item.Cells[1].Controls[0]).Text;// 这是索引五.给删除按钮添加确认:protected void DataList1_ItemDataBound(object sender, DataListItemEv entArgs e){if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType== ListItemType.AlternatingItem){LinkButton lbtn =(LinkButton) e.Item.FindControl("lbtn delete");Ibt n. Attributes.Add("O nClick","retur n con firm‘ 确定要删除吗?‘ )");protected void DataGrid1_ItemDataBound(object sender, DataGridItemE}}}}ventArgs e){ if(e.Item.ItemType==ListItemType.Item || e.Item.ItemType==ListItemType.AlternatingItem){LinkButton lbtn = (LinkButton)e.Item.Cells[3].Controls[0];lbtn.Attributes.Add("OnClick","return confirm( ‘确认删除?‘ )");}}GridView1_RowDataBound(object sender, GridViewRow EventArgs e){if(e.Row.RowType== DataControlRowType.DataRow) {stri ng strid = e.R ow.Cells[0].Text;〃猎取第一行的字段值;e.Row.Cells[3].Attributes.Add("OnClick", "return confirm ( ‘确认删除 \""+strid+"\" ?‘)");//用了两个转义符将第一列的值用引号括起来 ,注意转义符后面一个将不被讲明,是直截了当放上去 ;protected void 程序中常用的三十三种代码(1) 程序中常用的三十三种代码(2) } 双击表格打开新一页if(e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType. AlternatingItem){string OrderItemID =e.item.cells[1].Text;e.item.Attributes.Add("ondblclick", "open(' ../ShippedGrid.aspx?id=" + Or derItemID + " ')");}6.表格超连接列传递参数v asp:HyperLinkColumn Target="_blank" headertext二"ID号"DataTextField二"id" NavigateUrl="aaa.aspx?id='v %# DataBinder.Eval(Container.Dataltem,"数据字段1")% >' & name = v %# DataBinder.Eval(Container.Dataltem,"数据字段2")% >' />7.表格点击改变颜色if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){ e.Item.Attributes.Add("onclick","this.style.backgroundColor= ' #99cc00' ;this.style.color=' buttontext' ;this.style.cursor=' default' ;");} 写在DataGrid 的」temDataBound 里if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem){ e.Item.Attributes.Add("onmouseover","this.style.backgroundColor=' #99cc00' ;this.style.color=' buttontext' ;this.style.cursor=' default' ;");e.Item.Attributes.Add("onmouseout","this.style.backgroundColor='' ;this.style. color='' ;");} 8.关于日期格式日期格式设定DataFormatString="{0:yyyy-MM-dd}"我觉得应该在itembound 事件中e.items.cell["你的列”].text二DateTime.Parse(e.items.cell[‘你的列”].text.ToStrin g("yyyy-MM-dd"))9.猎取错误信息并到指定页面不要使用Response.Redirec而应该使用Server.Transfere.g// in global.asaxprotected void Application_Error(Object sender, EventArgs e) {if (Server.GetLastError() is HttpUnhandledException)Server.Transfer("MyErrorPage.aspx");//其余的非HttpUnhandledException专门交给自己处理就okay 了:)} Redirect会导致post- back的产生从而丢失了错误信息,因此页面导向应该直截了当在服务器端执行,如此就能够在错误处理页面得到出错信息并进行相应的处理10.清空Cookie<>程序中常用的三十三种代码(6) v/ASP:TEMPLATECOLUM N >v ASP:TEMPLATECOLUMN headertext二'选中” >v HEADERSTYLE wrap="False" horizontalalign="Center">v/HEADERST YLE > v ITEMTEMPLATE >v ASP:CHECKBOX id="chkExport" runat="server" />v /ITEMTEMPLATE >V EDITITEMTEMPLATE >v ASPQHECKBOX id二"chkExportON" run at二"server" en abled二"true" /> V/EDITITEMTEMPLATE >V/ASP:TEMPLATECOLUMN >后台代码protected void CheckAll_CheckedChanged(object sender, System.EventArgs e){//改变列的选定,实现全选或全不选。
第六章数据绑定技术6.5 课后习题6.5.1作业题6-1用C#编写一个方法,求1000!。
用javascript调用该方法并输出结果,同时绑定该方法到Label控件并显示结果,如图30所示。
(提示,因1000!结果太大,可采用BigInteger来求解)图30 数据绑定求1000!6-2 采用SqlDataSource控件,使DropDownList控件只显示College数据库Student 表中的男生姓名,如图31所示。
选中某男生后,在GridView控件中显示该生的详细资料,如图32所示。
图31 选中某男生图32 显示该男生详细信息见“课后习题源代码”文件夹下的“homework6-1——homework6-2”6.5.2思考题1.<%#%>、<%=%>与<%%>有什么区别?<%#数据源%>绑定数据源必须调用Page.DataBind()方法。
<%=数据源%>绑定数据源不需要调用Page.DataBind()方法。
<%--注释内容--%>是服务器端注释,允许开发人员在应用程序文件的任何部分(除了<script>代码块内部)嵌入代码注释。
服务器端注释元素的开始标记和结束标记之间的任何内容,不管是代码还是文本,都不会在服务器上进行处理或呈现在结果页上。
例如,使用服务器端注释对TextBox控件进行注释,代码如下:<%--<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>--%>执行后,浏览器上将不显示此文本框。
--阿举2014.12.20。
数据绑定控件数据绑定控件简介数据绑定分为:数据源和数据绑定控件两部分,数据绑定控件通过数据源来获得数据,通过数据源来隔离数据提供者和数据使⽤者,数据源有:SqlDataSource,AccessDataSource,ObjectDataSource,LinqDataSource,XmlDataSource 等⼤部分不会直连接数据库,所以SqlDataSource,AccessDataSource不会使⽤ObjectDataSource 是WEB开发中应⽤最⼴的数据源,也能很容易的进⾏数据库切换数据绑定控件有:列表数据绑定控件(DropDownList,RadioButtonList,ListBox,CheckBoxList等)与复杂控件(ListView,Repeater,GridView,DetailsView,FormView,DataList,DataGrid等)Repeater是最轻量级的组件,在前台⽤的最多,ListView是.NET3.5中新增的控件,它是 GridView,DetailsView,FormView,Repeater等这些控件的⼤统⼀者,那些控件的优点它都有ObjectDataSourceObjectDataSource ⽤来将⼀个类做为数据源,TypeName属性为数据源类的全名,有DeleteMethod,InsertMethod,SelectMethod,UpdateMethod等⼏个属性,分别为类中删除,插⼊,查询,更新数据的⽅法名这些⽅法可能有参数,参数的值是通过DeleteParameters,UpdateParameters,InserParameters等嵌套设置⼿⼯编写ObjectDataSource太⿇烦,使⽤界⾯来完成,将ObjectDataSource拖放到界⾯上,在右上⾓选择"配置数据源"即可进⾏配置,数据源类⼀般⽤数据集就可以,⽣成完后,在“配置数据源”中就能看到了GridView控件选择DataKeyNames属性DataKeys属性取选中⾏的数据取DataKey单⼀Key复合Key取⾮Key列默认⽅法:Cells[0].Text使⽤模板⾥的控件(复杂列)---在”模板⾥讲”---- 处理事件RowCommand在 GridView 控件中单击某个按钮时发⽣。
五大数据控件
引言
是一个用于构建 Web 应用程序的开发框架,它提供了许多功能强大的数据控件,用于向用户展示和操作数据。
这些数据控件可以帮助开发人员快速地创立具有丰富交互性和数据处理功能的 Web 应用程序。
本文将介绍 中的五大数据控件,包括GridView、ListView、FormView、Repeater和DataList。
1. GridView
GridView 是 中最常用的数据控件之一。
它可以将数据以表格的形式展示,并且提供了一系列的功能,如分页、排序、筛选等。
GridView 的使用非常简单,只需要绑定数据源,然后设置相应的属性即可。
以下是一个简单的 GridView 的例子:
markdown aspnet <asp:GridView ID=。