Repeater嵌套绑定Repeater以及内层调用外层数据

来源:互联网 发布:淘宝卖家购物车怎么看 编辑:程序博客网 时间:2024/05/21 04:39

aspx:

<table border="0" cellpadding="0" cellspacing="0" style="margin-bottom: 5px" width="100%">
    
<asp:Repeater runat="server" ID="rptypelist" OnItemDataBound="rptypelist_ItemDataBound">
        
<ItemTemplate>
            
<tr>
                
<td class="fb">
                    
&nbsp;&nbsp;<a href="Lists.aspx?Qtid=<%#Eval("qtid") %>"><%#Eval("qtypename"%></a> <span id="askCount_15"
                        
class="date2">[<%#Eval("typecount")%>]</span>
                
</td>
            
</tr>
            
<tr>
                
<td>
                    
<div id="askTop2_15" class="ask_list">
                        
<asp:Repeater runat="server" ID="rpquestionlist">
                            
<ItemTemplate>
                                
<a href="Question.aspx?qid=<%#Eval("liftquestionid")%>">
                                    
<%#Eval("questiontitle")%></a><br />

                                     父级数据:<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem,"qtid")%>
                                     父级序号:
<%# ((RepeaterItem)Container.Parent.Parent).ItemIndex%>

                            
</ItemTemplate>
                        
</asp:Repeater>
                    
</div>
                
</td>
            
</tr>
        
</ItemTemplate>
    
</asp:Repeater>
</table>

cs:

private void Repeater1Bind()
        {
//GetQuestionTypeAndCount() 返回一个datatable
            this.rptypelist.DataSource = LiftQuestionCtr.GetQuestionTypeAndCount();                   
            
this.rptypelist.DataBind();
        }
               
protected void rptypelist_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {

//判断里层repeater处于外层repeater的哪个位置( AlternatingItemTemplate,FooterTemplate,

//HeaderTemplate,,ItemTemplate,SeparatorTemplate)
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rep 
= e.Item.FindControl("rpquestionlist"as Repeater;//找到里层的repeater对象
                DataRowView rowv = (DataRowView)e.Item.DataItem;//找到分类Repeater关联的数据项 
                int typeid = Convert.ToInt32(rowv["qtid"]); //获取填充子类的id 
                rep.DataSource = LiftQuestionCtr.GetSomeQuestionsByTypeid(typeid, 2);
                rep.DataBind();
            }
        }

 

此方法应该适合于repeater嵌套,datalist嵌套。


原创粉丝点击