开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

asp:repeater控件使用

简介:
+关注继续查看

 repeater.aspx:

 


  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="repeater.aspx.cs" Inherits="MyWebservice.repeater" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <html xmlns="http://www.w3.org/1999/xhtml"> 
  5. <head> 
  6. <title>创建一个基本的Repeater控件</title> 
  7. <style type="text/css"> 
  8. *{padding:0;margin:0;} 
  9. .section1,.section2 
  10.     padding:10px 0; 
  11.     color:#369;  
  12. .section2 
  13.     background-color:#f0f6f9; 
  14. </style> 
  15. </head> 
  16. <body> 
  17. <asp:repeater  
  18.     id="repDepts"  
  19.     runat="server"  
  20. > 
  21.     <headertemplate> 
  22.         <h3>下面是所有雇员的一个列表:</h3> 
  23.     </headertemplate> 
  24.     <itemtemplate> 
  25.         <div class="section1"> 
  26.         <%# "<b>部门:</b> " 
  27.             + DataBinder.Eval(Container.DataItem, "ID") 
  28.             + " - "  
  29.             + DataBinder.Eval(Container.DataItem, "FirstName")  
  30.         %> 
  31.         </div> 
  32.     </itemtemplate> 
  33.     <alternatingitemtemplate> 
  34.         <div class="section2"> 
  35.         <%# "<b>部门:</b> " 
  36.             + DataBinder.Eval(Container.DataItem, "ID") 
  37.             + " - "  
  38.             + DataBinder.Eval(Container.DataItem, "FirstName")  
  39.         %> 
  40.         </div> 
  41.     </alternatingitemtemplate> 
  42.     <separatortemplate> 
  43.         <div>--------------------------------------------------</div> 
  44.     </separatortemplate> 
  45.     <footertemplate> 
  46.         <div id="lstFoot">全部记录都已显示.</div> 
  47.     </footertemplate>     
  48. </asp:repeater> 
  49. </body> 
  50. </html> 

repeater.aspx.cs:

 


  1. using System; 
  2. using System.Data; 
  3. using System.Data.OleDb; 
  4.  
  5. namespace MyWebservice 
  6.     public partial class repeater : System.Web.UI.Page 
  7.     { 
  8.         protected void Page_Load(object sender, EventArgs e) 
  9.         { 
  10.             if(!IsPostBack) 
  11.             { 
  12.                 OleDbConnection DBConn = new OleDbConnection("PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" + Server.MapPath("App_Data/EmployeeDatabase.mdb")); 
  13.                 OleDbDataAdapter DBCommand = new OleDbDataAdapter("Select ID, FirstName From Employee Order By FirstName", DBConn); 
  14.                 DataSet ds=new DataSet(); 
  15.                 DBCommand.Fill(ds, "Employee"); 
  16.                 repDepts.DataSource = ds.Tables["Employee"].DefaultView; 
  17.                 repDepts.DataBind(); 
  18.             } 
  19.         } 
  20.     } 

 

图片:

 

参考:

http://www.java2s.com/Code/ASP/ADO.net-Database/BinddatatoaspRepeaterwithitemtemplatealternatingitemtemplateseparatortemplateandfootertemplate.htm

 

当然了可以很轻松的实现导航菜单的结构,repeater是个完全基于模板驱动的一个控件,不生成多余代码,完整靠我们自己来布局,非常自由:

 


  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="repeater.aspx.cs" Inherits="MyWebservice.repeater" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <html xmlns="http://www.w3.org/1999/xhtml"> 
  5. <head> 
  6. <title>创建一个基本的Repeater控件</title> 
  7. <style type="text/css"> 
  8. *{padding:0;margin:0;} 
  9. ul,li{list-style:none;} 
  10. .hMenu 
  11.     background-color:#090; 
  12.     overflow:hidden; 
  13.     width:500px; 
  14.     margin:10px auto; 
  15. .hMenu li 
  16.     float:left; 
  17.     padding:5px; 
  18. </style> 
  19. </head> 
  20. <body> 
  21. <asp:repeater  
  22.     id="repDepts"  
  23.     runat="server"  
  24. > 
  25.     <headertemplate> 
  26.         <ul class="hMenu"> 
  27.     </headertemplate> 
  28.     <itemtemplate> 
  29.         <li> 
  30.         <%# DataBinder.Eval(Container.DataItem, "OpName") %> 
  31.         </li> 
  32.     </itemtemplate> 
  33.     <separatortemplate> 
  34.         <li>|</li> 
  35.     </separatortemplate> 
  36.     <footertemplate> 
  37.         </ul> 
  38.     </footertemplate>     
  39. </asp:repeater> 
  40. </body> 
  41. </html> 

 

也可以实现table表格:

 


  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="repeater.aspx.cs" Inherits="MyWebservice.repeater" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <html xmlns="http://www.w3.org/1999/xhtml"> 
  5. <head> 
  6. <title>创建一个基本的Repeater控件</title> 
  7. <style type="text/css"> 
  8. *{padding:0;margin:0;} 
  9. #myTable 
  10.      
  11. #myTable th,#myTable td 
  12.     border:1px solid #c00;    
  13. #myTable th 
  14. {   background-color:#fc0;} 
  15. #myTable .altCell 
  16. {   background-color:#fff0f0;color:#c00;} 
  17. </style> 
  18. </head> 
  19. <body> 
  20. <asp:repeater  
  21.     id="repDepts"  
  22.     runat="server"  
  23. > 
  24.     <headertemplate> 
  25.         <table id="myTable"> 
  26.         <thead> 
  27.         <tr> 
  28.             <th>标识</th><th>号码</th><th>名称</th> 
  29.         </tr> 
  30.         </thead> 
  31.         <tbody> 
  32.         <tr> 
  33.     </headertemplate> 
  34.     <itemtemplate> 
  35.         <td><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  36.     </itemtemplate> 
  37.     <AlternatingItemTemplate> 
  38.         <td class="altCell"><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td class="altCell"><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td class="altCell"><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  39.     </AlternatingItemTemplate> 
  40.     <separatortemplate> 
  41.         </tr><tr> 
  42.     </separatortemplate> 
  43.     <footertemplate> 
           </tr> 



  44.         </tbody> 


  45.  


  46.        </table> 


  47.     </footertemplate>     


  48. </asp:repeater> 


  49. </body> 


  50. </html> 


当然交替也可以这样简单些:

 


  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="repeater.aspx.cs" Inherits="MyWebservice.repeater" %> 
  2.  
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
  4. <html xmlns="http://www.w3.org/1999/xhtml"> 
  5. <head> 
  6. <title>创建一个基本的Repeater控件</title> 
  7. <style type="text/css"> 
  8. *{padding:0;margin:0;} 
  9. #myTable 
  10.      
  11. #myTable th,#myTable td 
  12.     border:1px solid #c00;    
  13. #myTable th 
  14. {   background-color:#fc0;} 
  15. #myTable .altRow 
  16. {   background-color:#fff0f0;color:#c00;} 
  17. </style> 
  18. </head> 
  19. <body> 
  20. <asp:repeater  
  21.     id="repDepts"  
  22.     runat="server"  
  23. > 
  24.     <headertemplate> 
  25.         <table id="myTable"> 
  26.         <thead> 
  27.         <tr> 
  28.             <th>标识</th><th>号码</th><th>名称</th> 
  29.         </tr> 
  30.         </thead> 
  31.         <tbody> 
  32.     </headertemplate> 
  33.     <itemtemplate> 
  34.         <tr> 
  35.             <td><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  36.         </tr> 
  37.     </itemtemplate> 
  38.     <AlternatingItemTemplate> 
  39.         <tr class="altRow"> 
  40.             <td><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  41.         </tr> 
  42.     </AlternatingItemTemplate> 
  43.     <footertemplate> 
  44.         </tbody> 
  45.        </table> 
  46.     </footertemplate>     
  47. </asp:repeater> 
  48. </body> 
  49. </html> 

 我们可以在每一行的开始加上序号,如下所示:

模板修改如下:

 


  1. <itemtemplate> 
  2.     <tr> 
  3.         <td><%# i++ %></td><td><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  4.     </tr> 
  5. </itemtemplate> 
  6. <AlternatingItemTemplate> 
  7.     <tr class="altRow"> 
  8.         <td><%# i++ %></td><td><%# DataBinder.Eval(Container.DataItem, "OpCode") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpNo") %></td><td><%# DataBinder.Eval(Container.DataItem, "OpName") %></td> 
  9.     </tr> 
  10. </AlternatingItemTemplate> 

后置类中添加如下的保护变量,以便派生的页面可以访问到变量i:

 


  1. protected  int i = 1; 

 





 本文转自 xcf007 51CTO博客,原文链接:http://blog.51cto.com/xcf007/362079,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
ASP.NET自定义控件组件开发 第一章 第三篇
原文:ASP.NET自定义控件组件开发 第一章 第三篇                                             第三篇:第一章的完结篇     系列文章链接: ASP.
807 0
ASP.NET自定义控件组件开发 第一章 第二篇 接着待续
原文:ASP.NET自定义控件组件开发 第一章 第二篇 接着待续      ASP.NET自定义控件组件开发 第一章 第二篇 接着待续     很感谢大家给我的第一篇ASP.NET控件开发的支持!在写这些之前,我也看了一些例子,想选中一些好上手的例子,这样,可能一些例子大家以前都见过,但是我想说:同样是弹钢琴,同样一首“命运交响曲”,有的人弹的让人荡气回肠,有的人弹的就很一般。
813 0
一起谈.NET技术,asp.net控件开发基础(10)
  集合属性相信大家都很熟悉也很常用,如DropDownList,ListBox等控件             测试1            测试2            测试3           1.实现集合属性效果   经过前面几篇的学习,相信这一篇看起来已经相对简单了.我们要做的就是,先定义一个复杂属性,然后用迭代语句获取数组数据即可。
554 0
[转]性能比较:.NET Remoting 与 ASP.NET Web 服务
http://www.cnblogs.com/cheatlove/articles/385119.html 摘要:本文对 Microsoft ASP.NET Web 服务与 Microsoft .NET Remoting 的相对性能进行比较。
1122 0
文章
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载