Repeater嵌套Repeater的结构:
cs代码:
private void RpTypeBind()
{
// GetQuestionTypeAndCount() 返回一个datatable
this .rptypelist.DataSource = LiftQuestionCtr.GetQuestionTypeAndCount();
this .rptypelist.DataBind();
}
{
// 判断里层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 >
此方法应该适合于repeater嵌套,datalist嵌套。
(datalist嵌套前不久试过,也可以)