ASP.NET 2.0三种模板控件的分析与研究

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:tzhole
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:ASP.NTE 2.0提供了三个功能强大的模板控件:Repeater控件、Datalist控件、Gridview控件,它们使得在Web应用程序中操作数据变得非常容易。该文结合几个例子对这几个控件的应用、功能及区别、联系进行了详细论述。
  关键词:ASP.NET; repeater; datalist; gridview
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)27-2078-03
  Study and Analysis of Template Controls on ASP.NTE 2.0 Platform
  DI Fang-ling, LIU Tian-shi
  (School of Computer Science of Xi’an Shiyou University, Xi’an 710065, China)
  Abstract: ASP.NET 2.0 provides three very useful data web Template Controls-Gridview, DataList and Repeater, which make the data work easier in the web applications. In accordance with using them in practical program,This thesis points out the all-around comparison and realition between them ,it also describes application, function and performance of these three web controls in details.
  Key words: ASP.NET; repeater; datalist; gridview
  
  1 ASP.NET 2.0的模板控件
  
  ASP.NET提供了目前最先进的Web开发平台,它采用了微软最新的DOT NET框架,是DOT NET框架的核心元素。ASP.NET是一项基于服务器的强大技术。它在数据处理方面引入了许多新技术,具有很好的可扩展性和可定制性。ASP.NET有三种模板控件:Repeater控件、Datalist控件、Gridview控件,这些控件的通用特征是支持模板。模板可以影响控件所包含的元素的外观和行为,以及控件的页眉和页脚等。这些控件另一个特征是可以通过数据绑定来填充各自的内容。
  
  基本数据绑定为:<%# DataBinder.Eval(Container.DataItem,"dataitem","{0}") %>
  
  2 Repeater控件
  
  2.1 介绍
  Repeater控件是Web服务器控件的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表。Repeater控件不具备内置的呈现功能,这表示用户必须通过创建模板为Repeater控件提供布局。当该页运行时,Repeater控件依次通过数据源中的记录为每一个记录呈现一个项。该控件不支持选择或者编辑其中的元素,也不具备内置分页功能,当然可用通过手写代码实现这些功能,但是比较繁琐,对于这些任务不如使用作用更强大的Datalist和Gridview控件,后面将会介绍这些控件。但如果仅仅实现显示数据的功能,Repeater效率会更高。
  
  2.2 举例
  下面这个例子利用Repeater控件结合SqlDataSource数据源,实现了SqlServer2000 Pubs数据库中authors表中若干个字段的显示功能。
  <form id="form1" runat="server">
  <div>
  <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:pubsConnectionString3 %>"
   SelectCommand="SELECT [au_id], [city] FROM [authors]"></asp:SqlDataSource>
  <br />
  <asp:Repeater ID="Repeater1" runat="server" DataSourceID="SqlDataSource1" OnItemCommand="Repeater1_ItemCommand">
  <HeaderTemplate>
  <table width ="600">
  <tr>
  <td>
  这是头模板
  </td>
  </tr>
  </HeaderTemplate>
  <ItemTemplate>
  <tr>
  <td>
  <%# Eval("au_id") %>
  //该语句等同于基本数据绑定:
  <%# DataBinder.Eval(Container.DataItem,"au_id","{0}") %>)
  </td>
  </tr>
   </ItemTemplate>
   <AlternatingItemTemplate>
   <tr>
   <td>
   <font color="red"> <%# Eval("au_id") %></font>
   </td>
   </tr>
   </AlternatingItemTemplate>
   <SeparatorTemplate>
   <tr><td ><hr size="2pt" /></td></tr>
   </SeparatorTemplate>
   <FooterTemplate>
  <tr>
  <td>
  //这是脚模板
  </td>
  </tr>
  </table>
  </FooterTemplate>
  </asp:Repeater>
  </div>
   </form>
  
  3 DataList控件
  
  3.1 介绍
  DataList控件它像Repeater控件一样可以以重复清单的方式显示数据项目,并且其内容和风格也要通过模板来实现,但这两个控件的差别还是很大的。Repeater控件要自由一些,但要花费更多的精力去设计它。DataList作为一个数据绑定控件,提供了大量新特性,其中大部分是关于图形布局的,这些都是Repeater控件所不具备的。可以通过属性生成器和样式来定义。例如,它支持方向性呈现,根据指定的列数可以水平或垂直排放项。DataList提供了可以检索与数据源当前行相关联值的工具,并具有对选择和编辑的内置支持,还支持更多的模板,并且可以触发比Repeater更多的事件。除了和Repeater类似的基本数据绑定外,DataSource属性用来将控件绑定到数据,DataBind方法用来刷新用户界面。
  DataList1.DataSource =ds.Tables[“authors”];
  DataList1.DataBind();
  3.1.1 DataList专用模板
  DataList除了上述五种模版外,还有两个模版:SelectedItemTemplate和EditItemTemplate。SelectedItemTemplate控制如何显示选定项,只在需要显示其它控件或者采用特定的逻辑时才使用它。EditItemTemplate通常和ItemTemplate一起使用,它是当项处于编辑模式时的布局,此模版通常包含编辑控件,如
  TextBox等。数据绑定可以手写(如Repeater),也可在项模版指定的控件(通常是标签)上绑定。
  3.2 举例
  下面的例子用自制数据源来实现DataList的编辑和删除功能。在项模版里有Label1到Label3,分别绑定au_id,au_fname,city,还有两个LinkButton1和LinkButton2,Text属性分别设置为:编辑和删除。编辑项模版里设置:Label4,TextBox1,TextBox2;LinkButton3,LinkButton4,它们的Text 属性设为更新和取消。上述四个LinkButton按钮,它们的CommandName 属性分别设为:edit,delete,update和cancel(这是系统默认的)。
  protectedvoidPage_Load(objectsender,EventArgse)
  {if(!IsPostBack)
  {bind();}}
  publicintexecuteSql(stringquery)
  {SqlConnectioncon=newSqlConnection("server=.;database=pubs;uid=sa;pwd=");
  con.Open();
  SqlCommandcmd=newSqlCommand(query,con);
  return(cmd.ExecuteNonQuery());}
  publicvoidbind()
  {SqlConnectioncon=newSqlConnection("server=.;database=pubs;uid=sa;pwd=");
  SqlDataAdaptersda=newSqlDataAdapter();
  sda.SelectCommand=newSqlCommand("select*fromauthors",con);
  DataSetds=newDataSet();
  sda.Fill(ds,"authors");
  DataList2.DataSource=ds.Tables[0];
  DataList2.DataKeyField="au_id";
  DataList2.DataBind();}
  protectedvoidDataList2_EditCommand(objectsource,DataListCommandEventArgse)
  {DataList2.EditItemIndex=e.Item.ItemIndex;
  bind();}
  protectedvoidDataList2_CancelCommand(objectsource,DataListCommandEventArgse)
  {DataList2.EditItemIndex=-1;
  bind();}
  protectedvoidDataList2_DeleteCommand(objectsource,DataListCommandEventArgse)
  {stringid=DataList2.DataKeys[e.Item.ItemIndex].ToString();
  databaseds=newdatabase();
  stringstr="deletefromauthorswhereau_id='"+id+"'";
  inti=ds.executeSql(str);
  if(i>0)
  {Response.Write("<script>aletr('删除成功')");
  DataList2.EditItemIndex=-1;
  bind();}
  }
  protectedvoidDataList2_UpdateCommand(objectsource,DataListCommandEventArgse)
  {stringid=DataList2.DataKeys[e.Item.ItemIndex].ToString();
  stringau_fname=((TextBox)e.Item.FindControl("TextBox1")).Text.ToString();
  stringcity=((TextBox)e.Item.FindControl("TextBox2")).Text.ToString();
  stringstr="updateauthorssetau_fname='"+au_fname+"',city='"+city+"'whereau_id='"+id+"'";
  databaseds=newdatabase();
  intj=ds.executeSql(str);
  if(j>0)
  {DataList2.EditItemIndex=-1;
  //若不加这一句只是数据库更新了,但是界面没有变化
  bind();}
  }
  
  4GridView控件
  
  4.1介绍
  GridView是功能最为强大的模版控件。它可以呈现多列的、完全模版化的表格,目前在多用性方面超出了所有数据绑定控件。可以编辑多种不同类型的列,也可以启用分页、启用编辑、启用删除、启用排序等等。总之,结合数据源完全可以不写一句代码就可以实现数据的显示、编辑、删除、排序、分页等强大功能。也可以添加、修改、删除列,可以实现别的列向模版列的转换。可以通过样式设置布局。它的编辑模版和DataList不同,DataList的模版设置是针对整个控件,而GridView则可以对每一列设置不同的模版。
  4.2举例
  下面我们在GridView中用自制数据源实现数据的编辑、删除功能。手写代码实现编辑、删除功能和DataList类似,重复代码不再交代,只把不同的关键代码附上以示区别。这和DataList不同,不用在项模版和编辑项模版中添加LinkButton,不过要添加两个CommandField字段:编辑和删除,同时把需要编辑的列转化模板列,否则无法编辑。
  protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
  {stringid=GridView1.DataKeys[e.RowIndex]["au_id"].ToString();
  //注释:需要同时将GridView1的DataKeyNames设置为:au_id)
  stringstr="deletefromauthorswhereau_id='"+id+"'";
  inti=Convert.ToInt32(cmd(str));
  if(i>0)
  {Response.Write("<script>alert('删除成功')");
  bind();}}
  protectedvoidGridView1_RowEditing(objectsender,GridViewEditEventArgse)
  {GridView1.EditIndex=e.NewEditIndex;
  bind();}
  protectedvoidGridView1_RowUpdating(objectsender,GridViewUpdateEventArgse)
  {stringid=GridView1.DataKeys[e.RowIndex]["au_id"].ToString();
  stringname=((TextBox)GridView1.Rows[e.RowIndex].Cells[3].FindControl("txtName")).Text.ToString();
  stringcity=((TextBox)GridView1.Rows[e.RowIndex].Cells[4].FindControl("txtCity")).Text.ToString();
  stringstr="updateauthorssetau_fname='"+name+"',city='"+city+"'whereau_id='"+id+"'";intj=cmd(str);
  if(j>0)
  {GridView1.EditIndex=-1;
  bind();}}
  protectedvoidGridView1_RowCancelingEdit(objectsender,GridViewCancelEditEventArgse)
  {GridView1.EditIndex=-1;
  bind();}
  
  5 结束语
  
  在ASP.NET 2.0 Web页面中操作数据时,开发人员常常会面临如何选择模版控件的问题。本文中,结合几个例子对三个模版控件的特点、功能进行了详尽的比较。总之,通常选用哪个控件在很大程度上取决于要实现的功能,对这些情况了解的清楚,开发出的Web应用程序质量也就越高。
  
  参考文献:
  [1] 丛书编委会.ASP.NET与网站开发实践教程[M].北京:清华大学出版社,2005.
  [2] Esposito D.构建Web解决方案—应用ASP.NET和ADO.NET[M].梁超,译.北京:清华大学出版社,2002.
其他文献
摘要:智能手机不仅仅可以用来打电话,还可以用来阅读从网上下载的书籍。现在网上的很多书籍采用的是txt格式。可是,有时会遇到在计算机中能正常显示的文本文件,在手机中却全是乱码,无法阅读。该文就针对这一问题用visual studio 2005编个简单的小程序,来帮助广大的手机用户解决txt格式的书籍出现乱码的问题。  关键词:Visual studio 2005;智能手机;编码;Unicode AN
摘要:该系统是为改变一个五金批发部以人工手写管理的现状,而设计的一个进销存管理系统。系统的主要功能是对商品的进货、销售和库存进行监控、调配和管理,以实现商品进销存管理的信息化、自动化和科学化。该系统的前台应用程序界面采PowerBuilder 9.0开发,后台数据库选用PowerBuilder自带的关系数据库Sybase SQL Anywhere。在系统设计中,详细的展现了系统的各个功能模块,所需
摘要:文章重点研究在自适应控制中间件支持下,Web服务组合执行引擎的QoS管理机制,设计了一个基于QoS的自适应控制中间件,并应用于Web服务组合执行引擎当中,以支持对服务请求的分级处理,实现了为不同等级用户提供区分服务的功能,为提高可变负载下单个执行引擎的高吞吐量和快速响应时间提供了一种有效的解决方案。  关键词:自适应控制;服务组合;执行引擎;服务质量;区分服务  中图分类号:TP301文献标
基于校园网的防火墙技术应用研究  王晓雨1,2  (1.武汉理工大学 计算机学院,湖北 武汉 430063;2.荆楚理工学院 计算机工程学院,湖北 荆门 448000)  摘要:防火墙技术是网络安全领域的一项重要技术,该文针对当前校园网应用中所遇到的问题,提出了几种解决的方法,并重点阐述了防火墙技术及其在校园网络安全中的应用。  关键词:校园网;网络安全;防火墙  中图分类号:TP393文献标识码
摘要:在ADO.NET提供的数据访问控件中,DataView具有功能强大的数据处理功能。本文就DataView的数据排序、数据筛选、数据搜索、数据修改等功能实现技巧进行探讨。  关键词:vb.net;数据源;DataView控件   中图法分类号:TP311 文献标识码:A 文章编号:1009-3044(2008)08-10ppp-0c    1 前言    随着计算机功能不断增强,计算机领域不断
摘要:阐述了嵌入式操作系统发展的历史、嵌入式操作系统的市场和技术发展的变化,介绍了当前一种源码公开的嵌入式实时操作系统μC/OS-II在产品开发中的应用现状、技术优势。分析了μC/OS-II嵌入式实时内核的公开源代码可移植性、可裁剪、可固化、稳定性与可靠性等特点。指出μC/OS-II在嵌入式工业控制系统中很好的应用前景。  关键词:嵌入式操作系统;μC/OS-II;移植  中图分类号:TP311文
摘要:针对于成人的计算机技术教学不能和学校教育中的计算机技术教学一样,必须针对成人的特点,采取有针对性的教学方法。本文结合成人的学习特点,就如何针对不同课程,更好利用多媒体,搞好成人计算机教学,强化实践教学,提高教学效果提出了自己的观点,并在此基础上提出了教学过程应注意的问题。  关键词:多媒体;任务式教学;课件;实践教学  中图分类号:TP37文献标识码:A文章编号:1009-3044(2008
智能信息技术福建省重点实验室,福建 厦门,361005)  摘要:本文针对NMR(核磁共振)系统软件的需求为其参数文件提供了一种XML设计方案,通过对多种XML解析方案的实验和比较,为XML参数文件提供了一种最优的解析和处理方案(VTD-XML),并且论证了VTD-XML在大数据处理方面的优势。  关键词:VTD;LC;SAX;文档对象模型;核磁共振;非提取式解析  中图分类号:TP391文献标识
摘要:在软件测试过程中,因为多方面的因素,常常会导致一些错误和失效,为了改善测试过程、使测试过程变得更为有效,需要对软件测试过程进行一个补充,那就是对软件测试的有效性进行评价。本文介绍了评价软件测试有效性工作的一般流程,并提出了一系列用于精确度量测试有效性的度量指标。  关键词:软件测试;测试的有效性  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)21-30467-
书名:语文阅读进階之路——罗夕花谈单元模块整合教学  作者:罗夕花  出版社:北京师范大学出版社  出版时间:2021年  ISBN:9787303256396  定价:65元  阅读是拓展学生知识领域、丰富学生思想内涵、塑造学生认知结构、增强学生思考能力、提升学生个人修养的重要途径。因此,阅读教学也成为当下语文教育教学研究的重点,受到学界的广泛关注。由罗夕花著、北京师范大学出版社于2021年出版