zoukankan      html  css  js  c++  java
  • 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

    warn 作者:ylbtech
    出处:http://ylbtech.cnblogs.com/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    Vue_(组件通讯)父子组件简单关系
    JavaWeb_(Struts2框架)Struts创建Action的三种方式
    JavaWeb_(Struts2框架)Servlet与Struts区别
    Vue_(组件通讯)动态组件结合keep-alive
    Vue_(组件通讯)动态组件
    Vue_(组件通讯)组件
    JavaWeb_(Struts2框架)使用Struts框架实现用户的登陆
    JavaWeb_(Struts2框架)使用Servlet实现用户的登陆
    原生Js_实现广告弹窗
    原生Js_简易图片轮播模板
  • 原文地址:https://www.cnblogs.com/ylbtech/p/2947571.html
Copyright © 2011-2022 走看看