repeater 嵌套,技巧如下:
aspx:
---------------------------------------------------------------------------
<asp:Repeater runat="server" ID="categories">
<ItemTemplate>
<span><a href="list.aspx?langid=<%#Eval("ID") %>"><%#Eval("Name") %></a></span><br/>
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("cat") %>'> //cat 为数据源;
<ItemTemplate>
<a href="list.aspx?categoryid=<%#Eval("[\"ID\"]") %>" target="_blank"><%#Eval("[\"Name\"]") %></a>
</ItemTemplate>
</asp:Repeater>
<br/>
</ItemTemplate>
</asp:Repeater>
CS:
----------------------------------------------------------------------------------------------------
aspx:
---------------------------------------------------------------------------
<asp:Repeater runat="server" ID="categories">
<ItemTemplate>
<span><a href="list.aspx?langid=<%#Eval("ID") %>"><%#Eval("Name") %></a></span><br/>
<asp:Repeater ID="Repeater1" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("cat") %>'> //cat 为数据源;
<ItemTemplate>
<a href="list.aspx?categoryid=<%#Eval("[\"ID\"]") %>" target="_blank"><%#Eval("[\"Name\"]") %></a>
</ItemTemplate>
</asp:Repeater>
<br/>
</ItemTemplate>
</asp:Repeater>
CS:
----------------------------------------------------------------------------------------------------
DataSet set = AskManager.GetAskDefaultPage();
totalsolved.InnerHtml = set.Tables[0].Rows[0][0].ToString();
totalunsolved.InnerHtml = set.Tables[0].Rows[0][1].ToString();
//cat
set.Relations.Add("cat", set.Tables[1].Columns["ID"], set.Tables[2].Columns["LangID"], false);
categories.DataSource = set.Tables[1];
categories.DataBind();
附:另一技巧
// DataSet 数据绑定后,加入过虑条件,刷选出有效数据,并与绑定。
DataView view;
view = new DataView(ds.Tables[0], "ParentID=359", "AddDate Desc", DataViewRowState.CurrentRows);
rptDayHot.DataSource = view;
rptDayHot.DataBind();
以上虽不是什么技术奥秘,可能不是最佳,但一些技巧还是能为开发,省去不少麻烦。所以推荐给了一些初学者。