最近在做一个项目,关于分类信息的,卡在一个绑定上面。本来打算一个一个用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>如何绑定要好些?
这个是一个效果图。这个里面的是子效果图这个是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>如何绑定要好些?
<li>·公司注册 专项审批 外资注册 国外注册</li>你不能每个<li>·公司注册 专项审批 外资注册 国外注册</li>都用repeater吧?
repeater可以循环标题,可是,里面还有像这样的形式。
<li>·公司注册 专项审批 外资注册 国外注册</li>
<li>·财务审核 税务代理 税务登记 </li>
<li>·产权商标 商标注册 商标设计 </li>
<li>·行业认证 认证公司 管理体系认证</li>
该如何控制呢。
<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也行。
前台页面部分:
<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();
}
}
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' )
<%@ 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>
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;
}
}
}
thanks,我为这个问题纠结呢一上午。总算请高手弄出来呢,我自己要好好研究一下代码,用到别的地方去。