首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

.net怎么能这样显示数据呢?

2012-01-13 
.net如何能这样显示数据呢???输出如下:据情况而定,不止2行,n行------------------------||||0.68|1.58|1.0

.net如何能这样显示数据呢???
输出如下:据情况而定,不止2行,n行
------------------------
|             |               |                       |     0.68       |     1.58         |     1.0           |
|   1         |   aaa       |       time1       |---------|----------|----------|
|             |               |                       |     0.68       |     1.58         |     1.0           |
------------------------
|             |               |                       |     0.5         |     1.22         |     0.2           |
|   2         |   bbb       |       time2       |---------|----------|----------|
|             |               |                       |     0.6         |     1.78         |     2.5           |
------------------------
第一条sql语句只能查询出前两项的内容   例如   aaa   ,     time1  
后面的数值是第二条或是第三条查询得出的数据结果,
要怎么做??
各位   帮帮忙

[解决办法]
有许许多多方法可以实现,但是没有最适合你的形式的“顶级”方法。所以还是一言难尽。

Table、Repeater、DataList,甚至GridView做为“顶级”控件再展开都可以。例如我在帖子

http://community.csdn.net/Expert/topic/5508/5508424.xml?temp=.9861261

中回答过一个合并单元格的问题。其实这里说的4种顶级控件大同小异,都是用 rowspan 属性来处理你的前三列。


不过我在csdn上一般只回答很容易回答的问题,你的问题需要比较多的东西计划在一起,比较费口舌,同时我也不确定你适合使用什么办法。
[解决办法]
lz试一试下面的代码,页面上放一个GridView,id为GridView1,加上OnRowDataBound= "GridView1_RowDataBound "属性就可以。
能看懂照着做就可以。
protected void Page_Load(object sender, EventArgs e)
{
GridView1.DataSource = getDataTable();
GridView1.DataBind();
}

private DataTable getDataTable()
{
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn( "name ", typeof(string)));
dt.Columns.Add(new DataColumn( "password ", typeof(string)));
DataRow dr;
for (int i = 0; i <= 10; i++)
{
dr = dt.NewRow();
if (i < 5)
dr[0] = "a ";
else
dr[0] = "b ";
dr[1] = i.ToString();
dt.Rows.Add(dr);
}
return dt;
}

int row = 0;
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
int rowindex = e.Row.RowIndex;
if (rowindex - 1 < 0) return;
if (e.Row.Cells[0].Text == GridView1.Rows[rowindex - 1].Cells[0].Text)
{


if (GridView1.Rows[row].Cells[0].RowSpan == 0) GridView1.Rows[row].Cells[0].RowSpan++;
GridView1.Rows[row].Cells[0].RowSpan++;
e.Row.Cells[0].Visible = false;
}
else
{
row = rowindex;
}
}
[解决办法]
能否通俗的讲一下 Repeater、DataList DataGird 有什么不同,什么情况下用哪个合适?

Repeater功能简单,但最快,它没有建立任何表格代码,所以一定需要写表格模板.这个控件可以适合你这个情况,但它没有分页功能,需要自己做分页.

DataList功能比Repeater强一点,也需要写表格模板,但它可以选择横排.我个人认为它不是很强大,又没有Repeater高效,所以我很少用到.

DataGrid这个是VS2003的旧控件了,现在VS2005已经用GridView取代.GridView非常强大,它可以用主题定义所有GridView的样式,不需要写表格模板,也有分页功能.通过DataSourceID可以实现无代码的表格操作,如插入,更新,删除,是最简单易用的.
[解决办法]
http://blog.morock.net/article.asp?id=30

两个datalist嵌套,网址中是竖向,你把他改成横向就可以。

热点排行