设为首页
加入收藏
联系站长
您现在的位置: 网贝 >> 建站学院 >> ASP.NET >> winform应用 >> 文章正文 用户登录 新用户注册
[组图]如何利用DataGrid纵向显示数据?         ★★★★
如何利用DataGrid纵向显示数据?
相关网站:
作者:lovecher… 文章来源:http://www.cnblogs.com/lovecherry 点击数: 更新时间:2005-6-21

有的时候想实现类似下图,第二个图示的效果:
 

我们可能首先会想到DataList,其实DataList我们这里设置:

<asp:DataList id="DataList1" runat="server" RepeatColumns="10">
                
<ItemTemplate>
                    
<%# DataBinder.Eval(Container.DataItem,"test"%>
                
</ItemTemplate>
        
</asp:DataList>

这样显示出来的是上图的效果,并不能得到预期的纵向显示一定行的效果。
其实遇到这样的情况可以对数据源做一下转换。
比如我们建立这样的测试数据源:

DataTable dt=new DataTable();
            DataColumn dc
=new DataColumn("test",Type.GetType("System.String"));
            dt.Columns.Add(dc);
            
for(int i=1;i<=54;i++)
            
{
                DataRow dr
=dt.NewRow();
                dr[
"test"]="测试"+i;
                dt.Rows.Add(dr);
            }


数据表中有54行数据,我们希望它一列显示8行,也就是分7列显示,达到上图的效果,写一个方法进行转换。

private DataTable MakeData(DataTable dt,int iSize,int iColumnID)
        
{
            
int itmp=dt.Rows.Count%iSize;
            
int iColumn;
            
if(itmp==0)
                iColumn
=dt.Rows.Count/iSize;
            
else
                iColumn
=dt.Rows.Count/iSize+1;
            DataTable newdt
=new DataTable();
            
for(int i=0;i<iColumn;i++)
            
{
                DataColumn dc
=new DataColumn(dt.Columns[iColumnID].ColumnName+i,dt.Columns[iColumnID].DataType);
                newdt.Columns.Add(dc);
            }

            
for(int i=0;i<iSize;i++)
            
{        
                DataRow dr
=newdt.NewRow();
                
for(int j=0;j<iColumn;j++)
                
{
                    
if((i+j*iSize)<dt.Rows.Count)dr[dt.Columns[iColumnID].ColumnName+j]=dt.Rows[i+j*iSize][iColumnID];
                }

                newdt.Rows.Add(dr);                
            }

            
return newdt;
        }


然后绑定即可:

this.DataGrid1.DataSource=MakeData(dt,8,0);
            
this.DataGrid1.DataBind();


在这里仅仅说明一下这个方法三个参数的含义:
第一个参数传递一个原来的数据表进去
第二个参数表示希望这一列显示多少行
第三个参数表示这个字段是数据表的第几列的字段,这里的数据表只有1列,所以写0

文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    相关网站:

    文章 下载 图片
    普通文章[组图]DataGrid在Po
    普通文章[图文]DataGrid的Ed
    普通文章[图文]方便的使用单
    普通文章[组图]为DataGrid添
    普通文章[组图]如何用DataGr
    普通文章[组图]嵌套的DataGr
    普通文章[组图]如何利用Data
    普通文章[组图]联合主键的情
  • 此栏目下没有推荐文章
  • 普通文章把手教你写私服列表
    普通文章WEB标准
    普通文章GOOGLE sitemap官方
    普通文章用php定制404错误页
    普通文章WAP(wml)开发问答
    普通文章[组图]PS教程系列:快
    普通文章时使用apache和IIS,
    普通文章[组图]2005年的第一
    推荐文章[组图]彻底掌握IIS6
    推荐文章[组图]CSS 全攻略
    推荐文章各种脚本错误详解!
    推荐文章直接生成XML的Googl
    推荐文章九个常见的错误原因
    推荐文章Win XP家用版也能装
    推荐文章JSP入门初级教程之J
    推荐文章ASP入门及提高
  • DataGrid在PostB

  • DataGrid的EditC

  • 方便的使用单击和

  • 为DataGrid添加自

  • 如何用DataGrid实


  • DataGrid在PostBack

    DataGrid的EditComm

    方便的使用单击和双

    为DataGrid添加自定
    (只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    Copyright © 2003-2005 NetBei.com All rights reserved.