关于在asp.net中ListView的使用,分组问题
数据表idnamezhuanye1aA2bA3cA4dB5eB在页面显示为A1a2b3cB4e5d各位大虾有没有好的方法,麻烦你写出前台和后代代码最好用ListView控...
数据表 id name zhuanye
1 a A
2 b A
3 c A
4 d B
5 e B
在页面显示为
A
1 a
2 b
3 c
B
4 e
5 d
各位大虾有没有好的方法,麻烦你写出前台和后代代码
最好用 ListView控件来实现 用GridView也行 展开
1 a A
2 b A
3 c A
4 d B
5 e B
在页面显示为
A
1 a
2 b
3 c
B
4 e
5 d
各位大虾有没有好的方法,麻烦你写出前台和后代代码
最好用 ListView控件来实现 用GridView也行 展开
2个回答
展开全部
大致写一段思路:
后台:
DataTable dtbA = new DataTable()
//取值 select id, name from 数据表 where zhuanye = 'A'
.....
DataTable dtbB = new DataTable()
//取值 select id, name from 数据表 where zhuanye = 'B'
.....
前台:
//前台输出A
if (dtbA != null && dtbA.Rows.Count > 0)
{
Response.Write("A<br/>");
foreach (DataRow drItem in dtbA.Rows)
{
Response.Write(drItem["id"].ToString() + " " + drItem["name"].ToString() + "<br/>");
}
}
//前台输出B
if (dtbB != null && dtbB.Rows.Count > 0)
{
Response.Write("B<br/>");
foreach (DataRow drItem in dtbB.Rows)
{
Response.Write(drItem["id"].ToString() + " " + drItem["name"].ToString() + "<br/>");
}
}
后台:
DataTable dtbA = new DataTable()
//取值 select id, name from 数据表 where zhuanye = 'A'
.....
DataTable dtbB = new DataTable()
//取值 select id, name from 数据表 where zhuanye = 'B'
.....
前台:
//前台输出A
if (dtbA != null && dtbA.Rows.Count > 0)
{
Response.Write("A<br/>");
foreach (DataRow drItem in dtbA.Rows)
{
Response.Write(drItem["id"].ToString() + " " + drItem["name"].ToString() + "<br/>");
}
}
//前台输出B
if (dtbB != null && dtbB.Rows.Count > 0)
{
Response.Write("B<br/>");
foreach (DataRow drItem in dtbB.Rows)
{
Response.Write(drItem["id"].ToString() + " " + drItem["name"].ToString() + "<br/>");
}
}
追问
不行这方法不行的 我专业有N种的
追答
可以做个嵌套循环,先把专业全部取出来,然后每个专业分别取数据,如下:
DataTable dtbZhuanye = new DataTable();
//取值 select distinct zhuanye from 数据表
//将得到一个数据表,数据为 A B C D等
//遍历专业
if (dtbZhuanye != null && dtbZhuanye.Rows.Count > 0)
{
foreach (DataRow drZhuanye in dtbZhuanye.Rows)
{
DataTable dtbX = new DataTable();
//取值 select id, name from 数据表 where zhuanye = 'drZhuanye["zhuanye"].ToString()'
//前台输出
if (dtbX != null && dtbX.Rows.Count > 0)
{
Response.Write(drZhuanye["zhuanye"].ToString() + "");
foreach (DataRow drItem in dtbX.Rows)
{
Response.Write(drItem["id"].ToString() + " " + drItem["name"].ToString() + "");
}
}
}
}
注:这种方法易读,但代码效率低些,你可以根据自己的情况改进,比如
1. 只读一次(select id, name from 数据表 order by zhuanye, id)
2. 读两次,一次读专业,一次读id和name放到DataView中,然后用DataView.RowFilter = " zhuanye = '传入值'";
实现方法很多,你自己抉择吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询