表:ProductsType
PT_ID PT_Name PT_ParentID
1 服饰 0
2 数码 0
3 书籍 0
4 男装 1
5 女装 1
6 童装 1
7 mp3 2
8 相机 2
9 笔记本 2
10 历史类 3
11 艺术类 3
12 科技类 4我想实现的数据查询是:
服饰
男装 女装 童装
数码
mp3 相机 笔记本
书籍
历史类 艺术类 科技类
要用repeater控件在页面上显示出来
PT_ID PT_Name PT_ParentID
1 服饰 0
2 数码 0
3 书籍 0
4 男装 1
5 女装 1
6 童装 1
7 mp3 2
8 相机 2
9 笔记本 2
10 历史类 3
11 艺术类 3
12 科技类 4我想实现的数据查询是:
服饰
男装 女装 童装
数码
mp3 相机 笔记本
书籍
历史类 艺术类 科技类
要用repeater控件在页面上显示出来
解决方案 »
- datagrid或gridvies中显示两个时间差问题
- 在线等——求一个视觉效果比较好的静态网站不要回答51aspx
- |zyciis| Jquery 如何取出页面中所有以"User_"开头的控件对像,谢谢
- vs2010 新建asp.net空网站问题
- 高分求城市表生成XML的算法
- 如何用asp.net从163邮箱中取出邮件
- web.config
- 请问高手:.net如何实现中国式报表(表头有斜线、合并单元格,中间有合计项)?急急急!!
- 请教asp.net中的dll文件
- 用ASP.NET+C#如何实现OUTLOOK式的菜单?
- 添加数据时,出现 “第 1 行: ')' 附近有语法错误”
- 请大家帮忙解决一个棘手问题(关于页面传递问题)
外层用select * from ProductsType where PT_ParentID ='0'构造 DataSet
获得你的为0的id,将这个id 做为构造里层的Repeater的 select * from ProductsType where PT_ParentID ='获得的编号'
<asp:Repeater ID="rp" runat="server">
<ItemTemplate>
<%# Eval("id") %>
<asp:Repeater ID="rp1" runat="server" DataSource='<%# GetData(Eval("id")) %>'>
<ItemTemplate>
<%# Eval("name") %><br />
</ItemTemplate>
</asp:Repeater>
<br />
</ItemTemplate>
</asp:Repeater>
其中关键是<asp:Repeater ID="rp1" runat="server" DataSource='<%# GetData(Eval("id")) %>'>
GetData是一个自义函数,原型如下:
protected DataTable GetData(object obj)
{
DataTable dt = new DataTable();
//这里做一些事情
return dt;
}
完整的代码如下:aspx
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
<%@ Import Namespace="System.Data" %><!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>nid's blog http://www.ljnid.cn</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Repeater ID="rp" runat="server">
<ItemTemplate>
<%# Eval("id") %>
<asp:Repeater ID="rp1" runat="server" DataSource='<%# GetData(Eval("id")) %>'>
<ItemTemplate>
<%# Eval("name") %><br />
</ItemTemplate>
</asp:Repeater>
<br />
</ItemTemplate>
</asp:Repeater>
</div>
</form>
</body>
</html>
aspx.cs文件
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;public partial class test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.Add("id");
for (int i = 0; i < 4; i++)
{
DataRow dr = dt.NewRow();
dr["id"] = i;
dt.Rows.Add(dr);
}rp.DataSource = dt;
rp.DataBind();
}
protected DataTable GetData(object obj)
{
DataTable dt = new DataTable();
dt.Columns.Add("name");
for (int i = 0; i < 10; i++)
{
DataRow dr = dt.NewRow();
dr["name"] = "name_" + obj + "_" + i;
dt.Rows.Add(dr);
}
return dt;
}
}