使用嵌套的Repeater控件显示分级数据

熟女俱乐部1

熟女俱乐部1

2016-02-19 16:28

生活已是百般艰难,为何不努力一点。下面图老师就给大家分享使用嵌套的Repeater控件显示分级数据,希望可以让热爱学习的朋友们体会到设计的小小的乐趣。

  简介

  本文描述如何使用嵌套的Repeater 控件来显示分级数据 。当然了,你也可以将这一技术应用到其他的列表绑定控件上去,比如DataGrid包含DataGrid,DataList包含DataList等等的组合。

  绑定到父表

  1.添加一个新的Web Form 到应用程序项目中,名称为Nestedrepeater.aspx.

  2.从工具箱托动一个Repeater 控件到这个页面上, 设定其ID 属性为 parent .

  3.切换到HTML 视图.

  4.选中下列<itemtemplate> 代码,复制到Repeater 控件对应的位置。注意,粘贴的时候请使用粘贴为html功能。这些语句包含了数据绑定语法,很简单。

  

<itemtemplate><b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br></itemtemplate>

  5.打开Nestedrepeater.aspx.cs 这个代码分离文件。降下列代码添加到Page_Load 事件中,其作用是建立一个到 Pubs (这个数据库是sql server的演示数据库。另外在安装.net framework sdk的时候也会安装这个数据库)数据库的连接,并绑定Authors 表到Repeater 控件

public void Page_Load(){ SqlConnection cnn = new SqlConnection("server=(local);database=pubs;uid=sa;pwd=;"); SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);  DataSet ds = new DataSet();  cmd1.Fill(ds,"authors");//这里将要插入子表的数据绑定parent.DataSource = ds.Tables["authors"];  Page.DataBind(); cnn.Close();}

  6.在文件的头部添加下面的名称空间

  using System.Data.SqlClient;

  7.根据你自己的情况修改一下连接字符串

  8.保存并编译应用程序

  9.在浏览器中打开这个页面,输出结果类似于下面的格式

  

172-32-1176213-46-8915238-95-7766267-41-2394... 

  绑定到子表

  1.在页面的HTML视图中,添加下列代码。其目的是增加子Repeater 控件到父Repeater的项目模板中,形成嵌套。

<asp:repeater id="child" runat="server"><itemtemplate><%# DataBinder.Eval(Container.DataItem, "["title_id"]") %><br></itemtemplate></asp:repeater>

  2.设置子Repeater 控件的DataSource 属性:

<asp:repeater ... datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>'>

  3.在页面顶部添加下列指睿ㄇ胱⒁猓是?aspx文件中):

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)

  <%@ Import Namespace="System.Data" %>

  在.cs文件中,将Page_Load中的注释部分(//这里将要插入子表的数据绑定)替换成下列代码:

SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);cmd2.Fill(ds,"titles");ds.Relations.Add("myrelation",ds.Tables["authors"].Columns["au_id"],ds.Tables["titles"].Columns["au_id"]);

  4.保存并编译应用程序。

  .在浏览器中察看修改后的页面。显示格式类似于下面的格式:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/webkaifa/)
172-32-1176PS3333213-46-8915BU1032BU2075238-95-7766PC1035267-41-2394BU1111TC7777... 

  完整的代码

Nestedrepeater.aspx<%@ Page Language=C# Inherits="yourprojectname.nestedrepeater" %><%@ Import Namespace="System.Data" %><html><body><form runat=server><!-- start parent repeater --><asp:repeater id="parent" runat="server">  <itemtemplate>   <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br><!-- start child repeater -->   <asp:repeater id="child" datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>' runat="server">    <itemtemplate>      <%# DataBinder.Eval(Container.DataItem, "["title_id"]")%><br>     </itemtemplate>   </asp:repeater>   <!-- end child repeater --></itemtemplate></asp:repeater><!-- end parent repeater --></form></body></html>Nestedrepeater.aspx.csusing System;using System.Data;using System.Data.SqlClient;using System.Web;using System.Web.SessionState;using System.Web.UI;using System.Web.UI.WebControls;namespace yourprojectname{ public class nestedrepeater : System.Web.UI.Page  {   protected System.Web.UI.WebControls.Repeater parent;   public nestedrepeater()   {     Page.Init += new System.EventHandler(Page_Init);   }   public void Page_Load(object sender, EventArgs e)   {     //Create the connection and DataAdapter for the Authors table.     SqlConnection cnn = new SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");     SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);//Create and fill the DataSet.     DataSet ds = new DataSet();     cmd1.Fill(ds,"authors");//Create a second DataAdapter for the Titles table.     SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);     cmd2.Fill(ds,"titles");//Create the relation bewtween the Authors and Titles tables.     ds.Relations.Add("myrelation",     ds.Tables["authors"].Columns["au_id"],     ds.Tables["titles"].Columns["au_id"]);//Bind the Authors table to the parent Repeater control, and call DataBind.     parent.DataSource = ds.Tables["authors"];     Page.DataBind();//Close the connection.     cnn.Close();   }   private void Page_Init(object sender, EventArgs e)   {     InitializeComponent();   }   private void InitializeComponent()   {    this.Load += new System.EventHandler(this.Page_Load);   }  }}

展开更多 50%)
分享

猜你喜欢

使用嵌套的Repeater控件显示分级数据

Web开发
使用嵌套的Repeater控件显示分级数据

在Repeater中嵌套使用Repeater

电脑网络
在Repeater中嵌套使用Repeater

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

使用PagedDataSource类实现DataList和Repeater控件的分页显示

Web开发
使用PagedDataSource类实现DataList和Repeater控件的分页显示

3.4 使用数据绑定控件显示数据

Web开发
3.4 使用数据绑定控件显示数据

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

repeater分页 内容显示

Web开发
repeater分页 内容显示

repeater实现多列显示

Web开发
repeater实现多列显示

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

让桌面变得更炫的Windows 7"升级版"气泡屏保

让桌面变得更炫的Windows 7"升级版"气泡屏保

让 Eclipse 插件程序具有二维作图能力(1)

让 Eclipse 插件程序具有二维作图能力(1)
下拉加载更多内容 ↓