ASP.NET中 Repeater嵌套
ylbtech-ASP.NET-Control-Bind: Repeater嵌套 |
ASP.NET中 Repeater嵌套。
1.A,运行效果图返回顶部 |
1.B,源代码(主要代码摘要)返回顶部 |
/App_Code/DBConnection.cs
/App_Code/CategoryInfo.cs
View Code
using System.Collections.Generic; public class CategoryInfo { int categoryid; string categoryname; string categorydesc; IList<ArticleInfo> articles; /// <summary> /// 1,子嵌套数据 /// </summary> public IList<ArticleInfo> Articles { get { return articles; } set { articles = value; } } public int Categoryid { get { return categoryid; } set { categoryid = value; } } public string Categoryname { get { return categoryname; } set { categoryname = value; } } public string Categorydesc { get { return categorydesc; } set { categorydesc = value; } } public CategoryInfo() { } public CategoryInfo(int categoryid, string categoryname, string categorydesc,IList<ArticleInfo> articles) { this.categoryid = categoryid; this.categoryname = categoryname; this.categorydesc = categorydesc; this.articles = articles; } }
/App_Code/ArticleInfo.cs
/App_Code/CategoryOper.cs
View Code
using System.Data; using System.Data.SqlClient; using System.Collections.Generic; public class CategoryOper { public static IList<CategoryInfo> SelectAll() { IList<CategoryInfo> allcate = new List<CategoryInfo>(); string sql = "select category.categoryid,categoryname,categorydesc,id,title,author from category inner join article on category.categoryid=article.categoryid order by category.categoryid"; SqlConnection con = new DBConnection().Con; SqlCommand com = new SqlCommand(); com.Connection = con; com.CommandText = sql; com.CommandType = CommandType.Text; con.Open(); SqlDataReader sdr = com.ExecuteReader(); int tempcategoryid=0; CategoryInfo cate=null; while (sdr.Read()) { int categoryid=sdr.GetInt32(0); //如果类别改变则创建一个新的 cate 对象 if(categoryid!=tempcategoryid) { cate = new CategoryInfo(sdr.GetInt32(0), sdr.GetString(1), sdr.GetString(2), new List<ArticleInfo>()); allcate.Add(cate); tempcategoryid = categoryid; //把新类别编号付给标识 } ArticleInfo art = new ArticleInfo(sdr.GetInt32(3), sdr.GetString(4), sdr.GetString(5)); cate.Articles.Add(art); } con.Close(); return allcate; } public CategoryOper() { // // TODO: 在此处添加构造函数逻辑 // } }
/App_Code/ArticleOper.cs
,6
/Default.aspx
View Code
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" > <head runat="server"> <title>无标题页</title> </head> <body> <form id="form1" runat="server"> <div style="text-align:center"> <asp:Repeater ID="RepCate" runat="server"> <HeaderTemplate> <table border="1"> <tr> <td>分类编号</td> <td>分类名称</td> <td>分类描述</td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Eval("categoryid") %></td> <td><%#Eval("categoryname") %></td> <td><%#Eval("categorydesc") %></td> </tr> <tr> <td>本类新闻</td> <td colspan="2"> <asp:Repeater ID="RepArticle" runat="server" DataSource='<%#Eval("articles") %>' > <HeaderTemplate> <table border="1" style="background-color:#00FF00;"> <tr> <td>新闻编号</td> <td>新闻标题</td> <td>新闻作者</td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%#Eval("id") %></td> <td> <asp:HyperLink ID="Hl1" runat="server" Text='<%#Eval("title") %>' NavigateUrl='<%#string.Format("ShowArticle.aspx?id={0}",Eval("id") ) %>' ></asp:HyperLink> </td> <td><%#Eval("author") %></td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </td> </tr> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </asp:Repeater> </div> </form> </body> </html>
/Default.aspx.cs
View Code
using System; public partial class _Default : System.Web.UI.Page { private void BindCategory() { RepCate.DataSource = CategoryOper.SelectAll(); RepCate.DataBind(); } protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindCategory(); } } }
/web.config
1.C,资源下载返回顶部 |
https://files.cnblogs.com/ylbtech/WebForm-NestedRepeater.rar
作者:ylbtech 出处:http://ylbtech.cnblogs.com/ 本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 |