asp:Repeater:rpt 嵌套

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:
----------------------------------------------------------------------------------------------------

        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();
以上虽不是什么技术奥秘,可能不是最佳,但一些技巧还是能为开发,省去不少麻烦。所以推荐给了一些初学者。

你可能感兴趣的:(asp)