最近在做一个项目,关于分类信息的,卡在一个绑定上面。本来打算一个一个用repeter来绑的,但这样发现很繁琐。也用嵌套控件来尝试过,但效果很不好。因此就想请教一下给位。
这个是一个效果图。这个里面的是子效果图这个是html代码。
<div class="listes_one">
<h1><img src="images/index_1_07.gif" align="absmiddle" /> 海外留学</h1>
<ul>
<li>·公司注册  专项审批  外资注册  国外注册</li>
<li>·财务审核  税务代理 税务登记 </li>
<li>·产权商标 商标注册  商标设计  </li>
<li>·行业认证  认证公司  管理体系认证</li>
</ul>
</div>如何绑定要好些?

解决方案 »

  1.   

    repeater嵌套?嵌套这个吗
    <li>·公司注册 专项审批 外资注册 国外注册</li>你不能每个<li>·公司注册 专项审批 外资注册 国外注册</li>都用repeater吧?
    repeater可以循环标题,可是,里面还有像这样的形式。
    <li>·公司注册 专项审批 外资注册 国外注册</li>
    <li>·财务审核 税务代理 税务登记 </li>
    <li>·产权商标 商标注册 商标设计 </li>
    <li>·行业认证 认证公司 管理体系认证</li>
    该如何控制呢。
      

  2.   

    <div class="listes_one">
    <h1><img src="images/index_1_07.gif" align="absmiddle" /> 海外留学</h1>
    <ul>
    <div id="fenlei"><ul><li>·公司注册< ><li>专项审批< ><li>外资注册< ><li>国外注册< ></ul></div>
    <div id="fenlei"><ul ><li>·财务审核< ><li>  税务代理< ><li>税务登记 < ></ul></div>
    <div id="fenlei"><ul><li>·产权商标< ><li> 商标注册< ><li>商标设计  < ></ul></div>
    <div id="fenlei"><ul><li>·行业认证< >  <li>认证公司< ><li>管理体系认证< ></ul></div>样式也可以是这样的,或者,想达到这种效果,样式可以改呢也行,用table也行。
      

  3.   

    Repeater嵌套就行了.类似下面,楼主试试~~~
    前台页面部分: 
    <asp:Repeater id="rptCategories" runat="server"> 
      <HeaderTemplate> 
        <table width="100%" border="0" cellspacing="0" cellpadding="0"> 
      </HeaderTemplate> 
      <ItemTemplate> 
        <!--分类名称--> 
        <tr><th><%# DataBinder.Eval(Container.DataItem, "TypeName") %></th></tr> 
        <!--分类下的产品--> 
        <asp:Repeater id="rptProduct" runat="server"> 
          <ItemTemplate> 
            <tr><td><a href='ProductInfo.aspx?Id=<%# DataBinder.Eval(Container.DataItem, "ID") %>'><%# DataBinder.Eval(Container.DataItem, "ProductName") %></a></td></tr> 
          </ItemTemplate> 
        </asp:Repeater> 
      </ItemTemplate> 
      <FooterTemplate> 
        </table> 
      </FooterTemplate> 
    </asp:Repeater> 后台代码部分(部分代码): 
    //在绑定分类品名时,绑定分类下的产品 
    private void rptCategories_ItemDataBound(object sender, System.Web.UI.WebControls.RepeaterItemEventArgs e) 

        BLL.Products products =new BLL.Products(); 
        if (e.Item.ItemType == ListItemType.Item ||    e.Item.ItemType == ListItemType.AlternatingItem)  
        { 
            Repeater rptProduct = (Repeater) e.Item.FindControl("rptProduct"); 
            //找到分类Repeater关联的数据项 
            DataRowView rowv = (DataRowView)e.Item.DataItem; 
            //提取分类ID 
            int CategorieId = Convert.ToInt32(rowv["ID"]); 
            //根据分类ID查询该分类下的产品,并绑定产品Repeater 
            rptProduct.DataSource = products.GetProductsByCategorieId(CategorieId); 
            rptProduct.DataBind(); 
        } 
      

  4.   

    嗯。LS正解、嵌套就好、自己需要注意下的就是里面的rpt和外面的布局。
      

  5.   


    CREATE TABLE [MultiBinding] (  [ID] [int] NOT NULL , [Title] [nvarchar] (100) NULL ,  [Parent_ID] [int] NOT NULL ,  [Child_ID] [int] NULL , [NavigationUrl] [nvarchar] (100) NULL ) INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] ) VALUES ( 1 , '日常服务类' , 0 )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 2 , '公司注册' , 1 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 3 , '专项审批' , 1 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 4 , '外资注册' , 1 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 5 , '国外注册' , 1 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 6 , '财务审核' , 1 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 7 , '税务代理' , 1 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 8 , '税务登记' , 1 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 9 , '产权商标' , 1 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 10 , '商标注册' , 1 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 11 , '商标设计' , 1 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 12 , '行业认证' , 1 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 13 , '认证公司' , 1 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 14 , '管理体系认证' , 1 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] ) VALUES ( 15 , '海外留学' , 0 )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 16 , '公司注册' , 15 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 17 , '专项审批' , 15 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 18 , '外资注册' , 15 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 19 , '国外注册' , 15 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 20 , '财务审核' , 15 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 21 , '税务代理' , 15 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 22 , '税务登记' , 15 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 23 , '产权商标' , 15 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 24 , '商标注册' , 15 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 25 , '商标设计' , 15 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 26 , '行业认证' , 15 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 27 , '认证公司' , 15 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] ) VALUES ( 28 , '房产类' , 0 )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 29 , '公司注册' , 28 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 30 , '专项审批' , 28 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 31 , '外资注册' , 28 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 32 , '国外注册' , 28 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 33 , '财务审核' , 28 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 34 , '税务代理' , 28 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 35 , '税务登记' , 28 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 36 , '产权商标' , 28 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 37 , '商标注册' , 28 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 38 , '商标设计' , 28 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 39 , '行业认证' , 28 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 40 , '认证公司' , 28 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] ) VALUES ( 41 , '人才类' , 0 )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 42 , '公司注册' , 41 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 43 , '专项审批' , 41 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 44 , '外资注册' , 41 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 45 , '国外注册' , 41 , 1 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 46 , '财务审核' , 41 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 47 , '税务代理' , 41 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 48 , '税务登记' , 41 , 2 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 49 , '产权商标' , 41 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 50 , '商标注册' , 41 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 51 , '商标设计' , 41 , 3 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 52 , '行业认证' , 41 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 53 , '认证公司' , 41 , 4 , 'http://www.baidu.com' )
     INSERT [MultiBinding] ( [ID] , [Title] , [Parent_ID] , [Child_ID] , [NavigationUrl] ) VALUES ( 54 , '管理体系认证' , 41 , 4 , 'http://www.baidu.com' )
      

  6.   


    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebApplication2._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>
        <style type="text/css">
            .mainTitle {
                color: #FF0000;
                font-family: 微软雅黑;
                font-size: medium;
            }
            .othersTitle
            {
                font-family: 宋体, Arial, Helvetica, sans-serif;
                color: #00FF00;
            }
        </style>
    </head>
    <body>
        <form id="form1" runat="server">
        <asp:Repeater ID="Repeater1" runat="server" onitemdatabound="Repeater1_ItemDataBound">
        <HeaderTemplate><table></HeaderTemplate>
        <FooterTemplate></table></FooterTemplate>
        <ItemTemplate>
        <tr>
            <td>
            <asp:Label ID="Label1" runat="server" CssClass="mainTitle" Text='<%# Eval("Title") %>'></asp:Label>
            <asp:DataList ID="DataList1" runat="server" onitemdatabound="DataList1_ItemDataBound" RepeatColumns="2" >
            <ItemTemplate>
                   ·
                <asp:Repeater ID="Repeater2" runat="server">
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" runat="server" CssClass="othersTitle" Text='<%# Eval("Title") %>' NavigateUrl='<%# Eval("NavigationUrl") %>' Target="_blank"/>
                </ItemTemplate>
                </asp:Repeater>
            </ItemTemplate>
            </asp:DataList>
            </td>
        </tr>
        </ItemTemplate>
        </asp:Repeater>        
        </form>
        <p class="othersTitle">
        </p>
    </body>
    </html>
      

  7.   


    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
    using System.Data.SqlClient;namespace WebApplication2
    {
        public partial class _Default : System.Web.UI.Page
        {
            private string connectString = "server=(local);database=Example;integrated security=sspi";
            private int count = 1;
            protected void Page_Load(object sender, EventArgs e)
            {
                if (!IsPostBack)
                {
                    SetBind();
                }
            }        private void SetBind()
            {
                Repeater1.DataSource = GetDataSet(string.Format(@"SELECT [ID]
          ,[Title]
          ,[Parent_ID]
          ,[Child_ID]
          ,[NavigationUrl]
      FROM [Example].[dbo].[MultiBinding] where [Parent_ID]={0}",0));
                Repeater1.DataBind();
            }        protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
            {
                count = 1;
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    DataList dl = e.Item.FindControl("DataList1") as DataList;
                    dl.DataSource = GetDataSet(string.Format(@"SELECT [Parent_ID]
        ,[Child_ID]
      FROM [Example].[dbo].[MultiBinding] group by [Child_ID],[Parent_ID] having [Parent_ID]={0}", ((DataRowView)e.Item.DataItem).Row.ItemArray[0].ToString()));
                    dl.DataBind();
                }
            }        protected void DataList1_ItemDataBound(object sender, DataListItemEventArgs e)
            {
                
                if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
                {
                    
                    Repeater rp = e.Item.FindControl("Repeater2") as Repeater;
                    rp.DataSource = GetDataSet(string.Format(@"SELECT [ID]
          ,[Title]
          ,[Parent_ID]
          ,[Child_ID]
          ,[NavigationUrl]
      FROM [Example].[dbo].[MultiBinding] where [Parent_ID]={0} and [Child_ID]={1}", 1,count++));
                    rp.DataBind();
                }
            }        private DataSet GetDataSet(string query)
            {
                DataSet ds=new DataSet();
                using (SqlConnection conn = new SqlConnection(connectString))
                {
                    SqlDataAdapter da = new SqlDataAdapter(query, conn);
                    da.Fill(ds);
                }
                return ds;
                
            }     
        }
    }
      

  8.   


    thanks,我为这个问题纠结呢一上午。总算请高手弄出来呢,我自己要好好研究一下代码,用到别的地方去。