首页 > 编程 > .NET > 正文

asp.net中DataGrid双行跨列跨行复杂表头设计心得!

2024-07-10 13:03:51
字体:
来源:转载
供稿:网友



一、datagrid的属性设置
  1. allowpaging:  true
  2. pagestyle->position: topandbottom
    3. 可选:pagestyle->horizonalign: center(使文本居中显示)
  4. 可选:itemstyle->horizonalign: center(使文本居中显示)
二、代码部分
  1.首先,使datagrid绑定数据库中某个表,例如:
 private void page_load(object sender, system.eventargs e)
  {
   // 在此处放置用户代码以初始化页面
   if(!ispostback)
   {
    sqlconnection myconn=new sqlconnection("server=localhost;uid=sa;pwd=sa;database=db_test");
    sqldataadapter da=new sqldataadapter("select * from 个人",myconn);
    dataset ds=new dataset();
    da.fill(ds,"gr");
    dggeren.datasource=ds.tables["gr"].defaultview;
    dggeren.databind();


   }
  2.为datagrid添加itemcreated事件的处理函数、
  3.为了判断datagrid中的两个(上下)pager的位置,我们可以使用一个全局变量来判断。
    定义一个全局变量 private int m_createpagetimes = 0;
  4.为datagrid的itemcreated事件的处理函数添加内容,如下:
  private void dggeren_itemcreated(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
  {
   switch(e.item.itemtype)
   {
     //case(listitemtype.pager):
    case listitemtype.pager:
    {
     if(m_createpagetimes == 0)
     {
      datagriditem row=(datagriditem)e.item;
      row.cells.clear();
      
      //row.backcolor=color.navy;  //背景色
      //row.forecolor=color.red; //前景色
      
      row.horizontalalign=horizontalalign.center;//使文本居中显示

      tablecell cell0=new tablecell();
      cell0.rowspan=2;
      cell0.controls.add(new literalcontrol("姓名"));

      tablecell cell1=new tablecell();
      cell1.columnspan=2;   //默认的columnspan值为1
      cell1.text="住房地址信息";
      
      //也可如此:cell1.controls.add(new literalcontrol("住房地址信息"));

      //tablecell cell2=new tablecell();
      //cell2.controls.add(new literalcontrol(""));
      tablecell cell2=new tablecell();
      cell2.rowspan=2;
      cell2.text="出生日期";

      row.cells.add(cell0);
      row.cells.add(cell1);
      row.cells.add(cell2);
      

      m_createpagetimes++;
     }
     break;
    }
    case listitemtype.header:
    {
     datagriditem head=(datagriditem)e.item;
     head.cells.clear();

     //head.verticalalign=verticalalign.middle;
     //head.horizontalalign=horizontalalign.center;

     //tablecell cell00=new tablecell();
     //cell00.rowspan=2;
     //cell00.text="姓名";

     tablecell cell01=new tablecell();
     cell01.text="楼号";

     tablecell cell02=new tablecell();
     cell02.text="房号";

     //tablecell cell03=new tablecell();
     //cell03.text="出生日期";

     //head.cells.add(cell00);
     head.cells.add(cell01);
     head.cells.add(cell02);
     //head.cells.add(cell03);
     break;
    }

 

   }
  
  }

三、最后效果如下图:

四、望大家指点!
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表