Repeater嵌套绑定Repeater

C#:
private void RpTypeBind()
        {
//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();
            }
        }

 

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 />
                            
</ItemTemplate>
                        
</asp:Repeater>
                    
</div>
                
</td>
            
</tr>
        
</ItemTemplate>
    
</asp:Repeater>
</table>
如果绑定的是对象Model:
 protected void rptHomeHelpCategory_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                Repeater rptHomeHelp = (Repeater)e.Item.FindControl("rptHomeHelp");
                //找到分类Repeater关联的数据项
                HiddenField hd_CategoryId = e.Item.FindControl("hd_CategoryId") as HiddenField;
                //提取分类ID
                //int CategorieId = Convert.ToInt32(hd_CategoryId.Value);
                var helpCategoryInfo = e.Item.DataItem as HelpCategoryInfo;//找到分类Repeater关联的数据项 
                if (helpCategoryInfo != null)
                {
                    int CategorieId = helpCategoryInfo.CategoryID; //获取填充子类的id 
                    //根据分类ID查询该分类下的产品,并绑定产品Repeater
                    string filter = " IsToHome=1 and categoryid =" + CategorieId + " ";
                    string argument = string.Empty;
                    string value = string.Empty;
                    string order = "[helpId],[TopLevel] desc";
                    int totalRecords = 0;

                    IHelp dal = Factory<IHelp>.Create("Help");
                    var data = dal.HelpList(filter, string.Empty, string.Empty, order, 1, 100, out totalRecords);

                    if (data != null)
                    {
                        rptHomeHelp.DataSource = data;
                        rptHomeHelp.DataBind();
                    }
                }
            }
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值