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

asp.net|datagrid|设计|心得

一、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;
    }

 

   }
  
  }

三、最后效果如下图:

四、望大家指点!

时间: 2024-09-22 16:46:50

asp.net中DataGrid双行跨列跨行复杂表头设计心得!的相关文章

怎么在Excel2003中如何隐藏行或列

怎么在Excel2003中如何隐藏行或列   方法一 1.选中要隐藏的行/列,格式-行/列-隐藏 2.选中的行/列已经被隐藏,效果如下. 方法二 1.选中要隐藏的列/行,单击鼠标右键,选择"隐藏". 2.CD两列已经被隐藏起来了,效果如下. word教程 Excel教程 PowerPoint教程

Word2010中实现双行合一的秘诀

  我们在网上找到的一些文档中,会看到双行合一的排版,很多人以为这是十分高深的编辑技巧.其实并非如此,这样双行合一的排版,我们的Word2010也会实现的,不信来一起看看: 第一:word双行合一效果 如何双行合一呢?word双行合一就是在一行里显示两行文字.下面所示的,就是word双行合一的效果. 双行合一的效果 第二:如何找到word2010双行合一 对于像我一样习惯了word2003版的界面操作,刚接触word2010版,还不是特别习惯.我一刚开始在word2010找不到中文版式双行合一,

JavaScript遍历table表格中的某行某列并打印其值_javascript技巧

JavaScript遍历table 1.说明 遍历表格中的某行某列,并打印其值 2.实现源码 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml">

【译】在Asp.Net中操作PDF - iTextSharp - 利用列进行排版

原文 [译]在Asp.Net中操作PDF - iTextSharp - 利用列进行排版   在使用iTextSharp通过ASP.Net生成PDF的系列文章中,前面的文章已经讲述了iTextSharp所涵盖的大多数基本功能.本文主要讲述通过另外一种方法来对文档进行排版,那就是使用列(columns).本系列之前的文章如下:     在ASP.NET中创建PDF-iTextSharp起步     在Asp.Net中操作PDF - iTextSharp - 使用字体     在Asp.Net中操作P

Asp.Net中DataGrid的模版列(TemplateColumn)内容控制简单方法

asp.net|datagrid|控制 最近写了几个asp.net的项目.其中,Asp.Net的控件DataGrid使用的最多了,前几天需要一个功能,我研究了很长时间,发现一个方法,应该是最简单的实现.现表述如下. DataGrid的html定义很简单,如下 <Asp:DataGrid ID="myDatagrid" runat="server" datakeyfield="fID" AutoGenerateColumns="Fa

ASP.NET中Datagrid常见错误

asp.net|datagrid|错误 摘要:学习如何避免在使用 ASP.NET Datagrid 控件进行开发时可能发生的一些常见错误. Datagrid 控件是 Microsoft? ASP.NET 中功能最强.用途最广的 Web 控件之一,这一点已经得到了 ASP.NET 权威人士的认同.虽然 Datagrid 控件易于使用,但同样易于给使用者带来麻烦.以下是许多人所犯的一些错误,这些人包括从初学者到富有经验的 .NET 专家.您可以看到许多苦闷的使用者在 ASP.NET 新闻组和论坛就这

在Word 2007中选中表格行或列

在Word2007文档中,对表格进行整行或整列操作是最常见的操作之一.在对 表格进行整行或整列操作时,首先需要选中整行或整列,操作方法如下所述. 将鼠标指针移动到表格左边,当鼠标指针呈向右指的白色箭头形状时,单击 鼠标左键可以选中整行.如果按下鼠标左键向上或向下拖动鼠标,则可以选中多 行,如图2009011101所示. 图2009011101 整行选中表格 将鼠标指针移动到表格顶端,当鼠标指针呈向下指的黑色箭头形状时,单击 鼠标左键可以选中整列.如果按下鼠标左键向左或向右拖动鼠标,则可以选中多

JQuery中dataGrid设置行的高度示例代码

 dataGrid 设置行的高度在jquery中如何做到,下面有个不错的教程,感兴趣的朋友可以参考下  代码如下: columns:[[  {field:"activitycontent",title:'活动内容',width:fixWidth(0.18),align:"center",halign:"center",  formatter:function(value,rec){  if(value.indexOf("src"

关于asp.net中datagrid中生成空白输入项目

问题描述 背景:做个web考勤系统,其中有个录入页面,让用户录入上班时间和下班时间.我想用asp.net中的datagrid控件做,datagrid控件已经和DB中的出勤明细表绑定完了,也就是说,DB中该表只要有数据,就会显示到该datagrid控件中.如果没有数据的话,datagrid控件什么都不显示.请问:如果没有数据的话,datagrid控件中能否全部显示成为输入项目呢?比如,开始11月份录入考勤,DB中之前没有数据,显示成全部的输入项目,让用户录入 解决方案 解决方案二:考勤怎么能让用户