`

使用嵌套 Repeater 控件和 Visual C# .Net 显示分层数据

    博客分类:
  • net
 
阅读更多

绑定到父表

<script type="text/javascript">loadTOCNode(2, 'summary');</script>

1. 启动 Microsoft Visual Studio .NET。
2. 文件菜单上,指向新建,然后单击项目
3. 单击项目类型下的 Visual C# 项目,然后单击模板下面的"ASP.NET Web 应用程序"。
4. 位置框中,删除 WebApplication # ,然后键入 NestedRepeater。如果您使用的是本地服务器,请保留服务器名称 http://localhost 不变。下列路径将显示在位置框中:
http://localhost/ NestedRepeater
单击确定
5. 解决方案资源管理器中,右键单击 NestedRepeater 项目名称节点,指向添加,然后单击添加 Web 窗体
6. 若要重命名 Web 窗体,请键入 NestedRepeater,然后单击打开
7. 创建了新的 Web 窗体。它将在 Microsoft Visual Studio .NET 集成开发环境 (IDE) 的设计视图中打开。从工具箱,选择 Repeater 控件,然后将其拖到 Web 窗体页面。
8. 将此 Repeater 控件的 ID 属性更改为"parentRepeater"。
9. 切换到 Web 窗体的 HTML 视图。为此,请单击设计器左下角的 HTML 选项卡。Repeater 控件将生成下列 HTML 代码:
<asp:Repeater id="parentRepeater" runat="server"></asp:Repeater>
10. 控件将生成下列 HTML 代码:在 Repeater 标记中添加下列代码:
<itemtemplate>
<b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>
</itemtemplate>
完成之后,Repeater 的 HTML 代码将如下所示:
<asp:Repeater id="parentRepeater" runat="server">
	<itemtemplate>
	     <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>	
</itemtemplate>
</asp:Repeater>
11. 控件将生成下列 HTML 代码:在"解决方案资源管理器"中,右键单击 NestedRepeater.aspx,然后单击查看代码切换到 NestedRepeater.aspx.cs 代码隐藏文件。
12. 控件将生成下列 HTML 代码:将下面的名称空间声明添加到该文件的顶端:
using System.Data;
using System.Data.SqlClient;
13. 控件将生成下列 HTML 代码:向 Page_Load 事件添加下列代码以创建到 Pubs 数据库的连接,然后将 Authors 表绑定到 Repeater 控件:
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; Integrated Security=SSPI");
SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);

//Create and fill the DataSet.
DataSet ds = new DataSet();
cmd1.Fill(ds,"authors");
//Insert code in step 4 of the next section here.
//Bind the Authors table to the parent Repeater control, and call DataBind.
parentRepeater.DataSource = ds.Tables["authors"];
Page.DataBind();

//Close the connection.
cnn.Close();
       }
备注:您可能必须修改数据库连接字符串,使其适合于您的环境。

14. 控件将生成下列 HTML 代码:保存所有文件。
15. 控件将生成下列 HTML 代码:在生成菜单上,单击生成解决方案以编译该项目。
16. 控件将生成下列 HTML 代码:在浏览器中查看 .aspx 页,并验证该页至今还在工作。输出应为如下所示:
172-32-1176
213-46-8915
238-95-7766
267-41-2394
...

回到顶端

绑定到子表

<script type="text/javascript">loadTOCNode(2, 'summary');</script>

1. 在 NestedRepeater.aspx 页的 HTML 视图中,找到下列代码行:
<b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>
在上述代码之后添加以下代码:
<asp:repeater id="childRepeater" runat="server">
		<itemtemplate>
	            <%# DataBinder.Eval(Container.DataItem, "[/"title_id/"]")%><br>
		</itemtemplate>
</asp:repeater>
此新代码将第二个 Repeater 控件添加到父 Repeater 控件的 ItemTemplate 属性。
2. 设置子 Repeater 控件的 DataSource 属性,如下所示:
<asp:repeater ... datasource='<%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %>'>
设置了子 Repeater 控件的 DataSource 属性之后,两个 Repeater 控件(父和子)的 HTML 代码如下所示:
<asp:Repeater id="parentRepeater" runat="server">
	<itemtemplate>
		"b";
		 <%# DataBinder.Eval(Container.DataItem, "au_id") %>
		</b>
		<br>
		<asp:repeater id="childRepeater" runat="server">
datasource='<%# ((DataRowView)Container.DataItem)
.Row.GetChildRows("myrelation") %>' >
			<itemtemplate>
				<%# DataBinder.Eval(Container.DataItem, "[/"title_id/"]")%><br>	
			</itemtemplate>
		</asp:Repeater>
	</itemtemplate>
</asp:Repeater>
3. 设置了子将下面的页指令添加到该页的顶端:
<%@ Import Namespace="System.Data" %>
4. 设置了子在代码隐藏页中,将 Page_Load 事件中的下列行:
//Insert code in step 4 of the next section here.
替换为以下代码:
//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"]);
这样会将 Titles 表添加到 DataSet,然后添加 Authors 表和 Titles 表之间的关系。
5. 设置了子保存并编译该应用程序。
6. 设置了子在浏览器中查看该页,并验证该页至今还在工作。输出应为如下所示:
172-32-1176
PS3333
213-46-8915
BU1032
BU2075
238-95-7766
PC1035
267-41-2394
BU1111
TC7777
...

回到顶端

完整代码列表

<script type="text/javascript">loadTOCNode(2, 'summary');</script>

Nestedrepeater.aspx

<script type="text/javascript">loadTOCNode(3, 'summary');</script>

<%@ Page language="c#" Codebehind="NestedRepeater.aspx.cs" AutoEventWireup="false" Inherits="NestedRepeater.NestedRepeater" %>
<%@ Import Namespace="System.Data" %>

<html>
<body>
<form runat=server>

<!-- start parent repeater -->
<asp:repeater id="parentRepeater" runat="server">
<itemtemplate>
<b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>

<!-- start child repeater -->
<asp:repeater id="childRepeater" 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.cs

<script type="text/javascript">loadTOCNode(3, 'summary');</script>

using 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 NestedRepeater
{
public class nestedrepeater :System.Web.UI.Page
   {
protected System.Web.UI.WebControls.Repeater parentRepeater;
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; Integrated Security=SSPI ;");
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.
parentRepeater.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);
      }
   }
}

分享到:
评论

相关推荐

    使用嵌套 Repeater 控件和 Visual C# _Net 显示分层数据

    使用嵌套 Repeater 控件和 Visual C# _Net 显示分层数据

    repeater控件分页 C#.Net实例代码

    这个文件是ASP.NET页面,其中包含Repeater控件的HTML标记和对应的C#后台代码,用于呈现分页后的数据。 7. **repeater控件分页.aspx.cs**: 这是与.aspx页面关联的C#后台代码文件,通常包含Page_Load事件处理程序...

    asp.net中Repeater控件嵌套Repeater调数据方法

    这使得Repeater控件非常适合用于复杂的布局和嵌套结构。 #### 嵌套Repeater的基本原理 嵌套Repeater是指在一个Repeater控件内部再放置一个或多个Repeater控件,以便能够展示具有层次关系的数据。通常情况下,外部的...

    repeater编辑更新删除 C#.Net实例代码

    本实例主要探讨了如何使用C#和ASP.NET中的Repeater控件来实现数据的编辑、更新和删除功能。Repeater控件是ASP.NET中一个非常灵活的数据绑定控件,它可以动态地呈现HTML或任何其他内容,这使得它非常适合自定义数据...

    asp.net2.0留言板模块(用visual C#.net编写)

    在留言板模块中,留言的显示通常会使用ASP.NET的Repeater或GridView控件。这些控件可以动态地从数据库中检索数据并将其呈现在网页上。每条留言可能包括用户名、时间戳、内容等字段,可以通过模板化的方式定制显示...

    《Visual C# .NET精彩编程实例集锦》第8章

    本章可能涵盖了DataSource控件、Repeater、GridView、ListView等控件的使用,以及如何进行动态数据绑定和数据操作。 4. 页面生命周期:理解ASP.NET页面生命周期是优化Web应用性能的关键。页面从初始化到加载、回发...

    【ASP.NET编程知识】浅析Repeater控件的使用 (原样导出和动态显示隐藏Repeater中的列).docx

    本篇文章将深入探讨Repeater控件的使用,包括数据原样导出和动态显示/隐藏Repeater中的列。 **一、Repeater数据原样导出** Repeater控件在ASP.NET中可以方便地绑定数据源,如DataTable,然后通过DataBind()方法将...

    repeater多层嵌套(c# asp.net)

    代码可直接复制粘贴使用,用c#做的,对于不想写代码的人不错的选择

    C# .net 服务器控件开发的一些例子

    10. **测试与调试**:在开发过程中,使用Visual Studio的调试工具进行测试和调试是非常重要的,以确保控件的正确行为。 综上所述,理解并熟练运用C# .NET服务器控件开发,不仅能够提升你的编程技能,还能帮助你构建...

    Repeater控件的多层嵌套

    在前台如果遇到多级分类菜单的时候,我们通常会使用到Repeater控件来展示,Repeater控件最大的有点就是不会生成任何多余的html标签,所以它不会影响的页面的效果,平时Repeater的二级嵌套我们可能都接触过,其实多层...

    Repeater嵌套方法

    总结来说,本例中的Repeater嵌套方法利用了***的数据绑定和事件处理机制,通过在页面中嵌套Repeater控件,实现了分层显示数据列表的功能。这种技术在构建复杂的数据呈现页面时非常有用,特别是当数据具有层级结构...

    .net 数据显示控件

    GridView是最常用的数据显示控件之一,它提供了丰富的预定义样式和功能,如分页、排序、筛选等。通过简单的后台代码或设计时数据绑定,可以轻松地显示和操作数据库中的数据。例如,你可以使用DataSourceID属性连接...

    .net实现Repeater嵌套Demo

    在.NET框架中,Repeater控件是一个非常...总的来说,掌握Repeater控件的嵌套和不同绑定方式对于开发动态、数据驱动的ASP.NET应用程序至关重要。通过实践和理解这些概念,你可以创建出更高效、用户体验更好的Web应用。

    Repeater嵌套Repeater 动态数据绑定

    本资源主要探讨了如何使用`Repeater`控件进行嵌套,以及如何实现动态数据绑定,这对于构建主从表关系的数据展示非常有用。 首先,我们来看`Repeater`控件的基本概念。`Repeater`是一个无模板的控件,它允许开发者...

    Repeater控件的使用

    在ASP.NET Web Forms开发中,`Repeater`控件是一个非常强大的数据绑定工具,它用于显示来自数据源的动态、自定义格式的数据。本篇文章将深入探讨`Repeater`控件的使用,包括如何实现编辑、删除功能以及如何进行嵌套...

    动态加载首页菜单及嵌套Repeater

    嵌套Repeater是ASP.NET中的一个控件,它用于呈现数据集合中的数据集合。在这种情况下,Repeater被用来显示首页的菜单项,而嵌套的部分则表示每个菜单项可能有多个子菜单项。Repeater控件非常灵活,可以自定义模板来...

    【ASP.NET编程知识】asp.net使用Repeater控件中的全选进行批量操作实例.docx

    通过使用 Repeater 控件,我们可以轻松实现数据的显示和操作。 在本文中,我们将通过实例讲述如何使用 Repeater 控件中的全选功能实现批量操作。首先,我们需要在 ASP.NET 项目中添加一个 Repeater 控件,并在其中...

    ASP.NET中Repeater控件高级应用研究

    经过对ASP.NET中Repeater数据控件基本特征的分析,以及对实际应用系统中数据列表功能的提炼总结,提出并设计了挖掘其潜力的示例算法模型,重点介绍了控件模板的灵活性与定制使用方法。并通过典型应用示例,展示其...

    repeater嵌套循环

    Repeater 嵌套循环是指在一个 Repeater 控件中嵌套另一个 Repeater 控件,以便于显示复杂的数据结构。这种技术可以用于显示树形结构、网格结构、层次结构等复杂的数据结构。 方法一:使用 DataSource 属性实现 ...

    ASP.NET 2.0 的数据源、数据绑定控件概述与区别

    总之,ASP.NET 2.0 的数据源和数据绑定控件提供了强大的数据处理和展示能力,通过合理的配置和使用,可以实现复杂的数据操作界面。理解和掌握这些控件的特性和工作原理,对于构建高效、可维护的 Web 应用程序至关...

Global site tag (gtag.js) - Google Analytics