【转自 http://www.cnblogs.com/caodaiming/archive/2008/12/18/1357660.html】
今天在网上看到一段代码,是关于Repeater 嵌套的问题,有很多的不明白的地方,希望大家能帮我把这个迷解了;
先看运行的效果:
XML文件:
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book type="计算机">
<context>C语言</context>
<context>C#语言</context>
<context>C++语言</context>
</book>
<book type="小说">
<context>爱情小说</context>
<context>知音小说</context>
<context>军事动态</context>
</book>
</books>
后台代码:
protected void Page_Load(object sender, EventArgs e)
{
DataSet ds = new DataSet();
ds.ReadXml(Server.MapPath("Test.xml"));
Repeater1.DataSource = ds;
Repeater1.DataBind();
}
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Repeater p = (Repeater)e.Item.FindControl("Repeater2");
DataRowView drv = (DataRowView)e.Item.DataItem;
p.DataSource = drv.CreateChildView("book_context");
p.DataBind();
}
}
前台代码:
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="Repeater1_ItemDataBound">
<HeaderTemplate>
Repeater Test</HeaderTemplate>
<FooterTemplate>
</FooterTemplate>
<ItemTemplate>
<ul>
<%#Eval("type") %>
<br />
</ul>
<asp:Repeater ID="Repeater2" runat="server">
<ItemTemplate>
<%#Eval("context_Text")%><br />
</ItemTemplate>
</asp:Repeater>
</ItemTemplate>
</asp:Repeater>
不明的地方是:
1、 p.DataSource = drv.CreateChildView("book_context"); 中的“book_context”为什么是这样的参数,修改成其它的参数报错:
去MSDN中查CreateChildView方法解释如下:
如果 DataSet 中的表之间存在关系,则可以使用 DataRowView 的 CreateChildView 方法为父表中的行创建一个 DataView,包含相关子表中的行;具体也没有说明什么,它只是说父表与子表的关系;
2、前面页面代码
<ItemTemplate>
<%#Eval("context_Text")%><br />
</ItemTemplate>
梆定XML中的context的时候只能是context_Text字段;修改成context是报错;但是按照我们一般性的理解,应该是梆定XML中的字段啊!
分享到:
相关推荐
本资源主要探讨了如何使用`Repeater`控件进行嵌套,以及如何实现动态数据绑定,这对于构建主从表关系的数据展示非常有用。 首先,我们来看`Repeater`控件的基本概念。`Repeater`是一个无模板的控件,它允许开发者...
repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater嵌套repeater...
首先,数据通常会绑定到外层`Repeater`,然后在`Repeater_ItemDataBound`事件中,找到内层`DataList`并为其绑定对应的数据。这通常涉及到数据的分组和子查询,以确保每个`DataList`只显示与当前`Repeater`项相关联的...
总结来说,本例中的Repeater嵌套方法利用了***的数据绑定和事件处理机制,通过在页面中嵌套Repeater控件,实现了分层显示数据列表的功能。这种技术在构建复杂的数据呈现页面时非常有用,特别是当数据具有层级结构...
### ASP.NET中Repeater控件嵌套Repeater的实现方法 在ASP.NET Web应用程序开发过程中,经常需要展示分层或嵌套的数据结构。一个常见的需求是,在一个列表中的每个项目都需要展示一组相关的子项,例如产品分类下的多...
本篇文章将详细探讨"Repeater表头排序"和"Repeater嵌套"这两个重要知识点。 首先,我们来看"Repeater表头排序"。在数据展示时,用户往往需要对数据进行排序,以便更直观地理解和分析信息。在Repeater中实现表头排序...
嵌套Repeater是指在一个Repeater的ItemTemplate中再放置另一个Repeater,从而形成一个层次结构。这种方式常用于处理具有层级关系的数据,如树形结构或者本例中的评论与回复。 三、实现评论及回复功能 在描述中提到...
通过在主`Repeater`的`ItemDataBound`事件中,找到内层`Repeater`并进行数据绑定,可以实现这种嵌套效果。 第二个ASPX文件则在此基础上增加了分页功能。在ASP.NET中,实现分页通常需要计算总页数、设置每页显示的...
在 ASP.NET 中,Repeater 控件是最常用的数据绑定控件之一,经常用于显示复杂的数据结构。然而,在实际开发中,我们经常会遇到需要使用 Repeater 嵌套循环来显示复杂的数据结构的情况。本文将详细介绍 ASP.NET 中的 ...
代码可直接复制粘贴使用,用c#做的,对于不想写代码的人不错的选择
本教程将深入讲解如何实现Repeater控件的嵌套,以及如何分别进行刷新绑定和无刷新绑定。 一、Repeater控件基础 Repeater控件不提供任何内置的样式或布局,而是完全由开发者通过ItemTemplate定义HTML结构。这使得...
本篇文章将深入探讨“repeater嵌套”这一主题,以及与datalist嵌套的相似之处。 首先,Repeater控件本身是一个基于模板的控件,它允许开发者通过HTML模板来定义数据的展示方式。这种方式提供了极大的灵活性,但同时...
这个“repeater很好的例子:嵌套”是一个关于如何使用`Repeater`控件进行层次化数据展示的示例。我们将深入探讨`Repeater`的嵌套用法,以及在C#中如何实现这一功能。 `Repeater`控件的基本用法是通过编程方式定义...
在ASP.NET web开发中,`Repeater`控件是一个非常重要的数据绑定工具,它允许开发者以自定义的方式显示数据集合。本示例中,我们将会深入探讨如何使用`Repeater`控件从数据库中获取数据并展示在网页上。源码包含两...
在ASP.NET web开发中,`Repeater`控件是一个非常重要的数据绑定工具,它提供了高度的自定义模板功能,使得开发者可以根据需要灵活地展示数据。本篇将深入讲解`Repeater`控件的使用方法及其核心概念。 首先,`...
本文将深入探讨"(ASP.NET)Repeater嵌套"这一主题,旨在帮助开发者理解如何在ASP.NET中使用Repeater控件进行多层次的数据展示。 首先,Repeater控件是基于模板的,这意味着我们可以自定义其输出的HTML结构。这为创建...
### 后台动态创建Repeater并绑定数据 在ASP.NET Web Forms中,Repeater控件是一种非常灵活且功能强大的控件,它允许开发者完全自定义布局,并能够方便地对数据进行迭代显示。本文将详细介绍如何在后台代码中动态...
本教程将深入讲解如何在ASP.NET中实现DataList与Repeater的嵌套绑定,以及相关实现技巧。 首先,DataList控件提供了一个更灵活的布局选项,它支持重复模板,可以创建复杂的表格结构,而Repeater则更加轻量级,只...
本篇文章将深入探讨如何在C#中实现Repeater控件的多层嵌套,以及如何根据分类ID查询并绑定产品数据。 首先,我们需要理解Repeater的基本用法。Repeater不提供任何内置的样式或布局,而是通过模板来定义其外观和行为...