今天在网上看到一段代码,是关于Repeater 嵌套的问题,有很多的不明白的地方,希望大家能帮我把这个迷解了;

先看运行的效果:

关于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>

后台代码:

 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方法解释如下:

如果 中的表之间存在关系,则可以使用 方法为父表中的行创建一个 ,包含相关子表中的行;具体也没有说明什么,它只是说父表与子表的关系;

2、前面页面代码


  <%#Eval("context_Text")%><br />
 
</ItemTemplate>

梆定XML中的context的时候只能是context_Text字段;修改成context是报错;但是按照我们一般性的理解,应该是梆定XML中的字段啊!

请教园子中的朋友给我把心中的这个迷解了;万分感谢!

相关文章: