日期:2014-05-18  浏览次数:20550 次

问一个有关于DataGrid和DataList绑定后显示的棘手问题
通常情况下,绑定DataGrid和DataList后,
每一行显示的是一个对象的有关信息

现在有个需求是这样的:
一行有4列,每一列显示的是一个对象的有关信息,
当显示到第五条对象信息的时候,换第二行第一列显示
依此类推....

请问这个怎么实现,谢谢~


------解决方案--------------------
晕啊, 自己 DataList 都搬出来了,还不会实现 ??

DataList 设置 RepeatDirection= "Horizontal " RepeatColumns = 4
------解决方案--------------------
2.0的写法,1.1稍做修改即可
//aspx
<asp:DataList ID= "DataList1 " runat= "server " RepeatDirection= "Horizontal " RepeatColumns= "4 " >
<ItemTemplate>
<%#Eval( "au_id ") %> <br>
<%#Eval( "au_lname ") %> <br>
<%#Eval( "au_fname ") %> <br>
<%#Eval( "state ") %> <br>
</ItemTemplate>
</asp:DataList>

//aspx.cs
private void BindList()
{
SqlConnection cn = new SqlConnection( "server=localhost;uid=sa;pwd=sa;database=pubs ");
SqlDataAdapter da = new SqlDataAdapter( "select au_id,au_lname,au_fname,state from authors ", cn);
DataSet ds = new DataSet();
cn.Open();
da.Fill(ds);
cn.Close();
DataList1.DataSource = ds;
DataList1.DataBind();
}

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindList();
}
}
------解决方案--------------------
我的理解是楼主想用数据库的进行行列转换吗?如果不能解决的话,楼主也可参考一下以下方法
1.创建一个test数据库
2.test数据库下查询
--创建 学生成绩表
CREATE TABLE [StuSources] (
[StuID] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[StuName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[KeCheng] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[ChengJi] [float] NOT NULL
) ON [PRIMARY]
3.插入数据
INSERT INTO StuSources
SELECT '001 ', '张三 ', '语文 ',81
UNION SELECT '001 ', '张三 ', '数学 ',71
UNION SELECT '001 ', '张三 ', '历史 ',71
UNION SELECT '002 ', '李四 ', '语文 ',82
UNION SELECT '002 ', '李四 ', '数学 ',72
UNION SELECT '002 ', '李四 ', '历史 ',72

4.
-- 一般的直接查询

SELECT * FROM StuSources

-- 结果
StuID StuName KeCheng ChengJi
001 张三 历史 71.0
001 张三 数学 71.0
001 张三 语文 81.0
002 李四 历史 72.0
002 李四 数学 72.0
002 李四 语文 82.0
5.
-- Sql 2000 下 行列转换

SELECT StuName,
'语文 ' = Sum(Case KeCheng WHEN '语文 ' THEN ChengJi ELSE 0 END ) ,
'数学 ' = Sum(Case KeCheng WHEN '数学 ' THEN ChengJi ELSE 0 END ),
'历史 ' = Sum(Case KeCheng WHEN '历史 ' THEN ChengJi ELSE 0 END )
FROM StuSources
GROUP BY StuName

-- 结果
StuName 语文 数学 历史
李四 82.0 72.0 72.0
张三 81.0 71.0 71.0