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"> <a href="Lists.aspx?Qtid=<%#Eval("qtid") %>"><%#Eval("qtypename") %>< span>a> <span id="askCount_15" class="date2">[<%#Eval("typecount")%>]< span>span> < span>td> < span>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")%>< span>a><br /> 父级数据:<%# DataBinder.Eval(((RepeaterItem)Container.Parent.Parent).DataItem, "qtid")%> 父级序号:<%# ((RepeaterItem)Container.Parent.Parent).ItemIndex %>
< span>ItemTemplate> < span>asp:Repeater> < span>div> < span>td> < span>tr> < span>ItemTemplate> < span>asp:Repeater> < span>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嵌套。 |