如何给DataGrid添加两个的题头分类显示

转载 2004年07月01日 09:46:00
CSDN - 文档中心 - .NET    
标题     如何给DataGrid添加两个的题头分类显示    cuike519(原作)
关键字     双题头,分类

       我在写PowerDataGrid想到要提供一个查询(有关PowerDataGrid的详细信息参考CSDN论坛中的讨论帖,源码可以在www.foxhis.com/powermjtest/sharepowerdatagrid.rar下载),该查询的构想是这样的:我的这个控件可以通过指定一个SQL语句来显示该语句的内容(其他的功能不叙述了,这不是重点),那么我可以封装一组UI到这个控件里面来实现查询的功能,问题出来了,这个查询通常情况下应该在DataGrid的上面也就是查询结果的上面,我要怎么才能保留原来的题头同时再添加一个题头呢(双题头)?
    问题出来了,改如何解决呢?想了好多办法都不行,如果要将Header重画,那么还要处理排序是前后台的交互问题,那么只能再保留原来Header不动的基础上添加新的Header。无意中发现在分页的时候可以有几种分页显示的方法,在分页面板里面有一个选现可以选择分页的位置,可以选择上下型,在选择这个类型的时候DataGrid在原来的Header上面又多了一行,我们今天就利用这一行来完成我们的任务,今天我们不产生查询的UI而是产生一个分类的题头,我们使用测试数据库Northwind中的Employees来显示数据,首先我们要做的是绑定数据绑定代码如下:
SqlConnection con = new SqlConnection("server=localhost;database=Northwind;uid=sa;pwd=;");
         SqlDataAdapter da = new SqlDataAdapter("SELECT LastName+' '+FirstName as name, BirthDate, Country, Title, HireDate FROM Employees",con);
         DataTable dt = new DataTable();
         da.Fill(dt);
         this.DataGrid1.DataSource = dt;
         this.DataGrid1.DataBind();
}
    接着我们在ItemCreated里面添加适当的代码来完成我们的任务,在PowerDataGrid该事件处理函数里面已经添加了创建一个自定义分页的UI!如果你在PowerDataGrid里面添加需要判断两个(上下)Pager的位置,我们可以使用一个全局变量来判断。
    定义一个全局变量 private int m_CreatePageTimes = 0;
    然后我们为该事件处理函数添加如下代码:
private int m_CreatePageTimes  = 0;
private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) {
         ListItemType elemType = e.Item.ItemType;
         if (elemType == ListItemType.Pager) {
            if (m_CreatePageTimes == 0) {
               TableCell cellPerson = (TableCell) e.Item.Controls[0];
               cellPerson.Controls.Clear();
               cellPerson.BackColor = Color.Navy;
               cellPerson.ForeColor = Color.Yellow;
               cellPerson.ColumnSpan = 3;
               cellPerson.HorizontalAlign = HorizontalAlign.Center;
               cellPerson.Controls.Add(new LiteralControl("个人信息"));
 
               TableCell cellJob = new TableCell();
               cellJob.BackColor = Color.Navy;
               cellJob.ForeColor = Color.Yellow;
               cellJob.ColumnSpan = 2;
               cellJob.HorizontalAlign = HorizontalAlign.Center;
               cellJob.Controls.Add(new LiteralControl("工作信息"));
               e.Item.Controls.Add(cellJob);
               m_CreatePageTimes  ++;
            }else if(m_CreatePageTimes ==1){
               // create custom pager UI
            }
         }
    最后是DataGrid的HTML部分的代码如下:
<asp:DataGrid id="DataGrid1" runat="server" AllowPaging="True" AutoGenerateColumns="False" Width="100%"
     PageSize="2">
     <Columns>
      <asp:BoundColumn DataField="name" HeaderText="姓名"></asp:BoundColumn>
      <asp:BoundColumn DataField="BirthDate" HeaderText="生日"></asp:BoundColumn>
      <asp:BoundColumn DataField="Country" HeaderText="国家"></asp:BoundColumn>
      <asp:BoundColumn DataField="Title" HeaderText="头衔"></asp:BoundColumn>
      <asp:BoundColumn DataField="HireDate" HeaderText="雇佣日期"></asp:BoundColumn>
     </Columns>
     <PagerStyle Position="TopAndBottom" Mode="NumericPages"></PagerStyle>
    </asp:DataGrid>
  运行效果如下所示:

  

如何给DataGrid添加两个的题头分类显示

       我在写PowerDataGrid想到要提供一个查询(有关PowerDataGrid的详细信息参考CSDN论坛中的讨论帖,源码可以在www.foxhis.com/powermjtest/s...
  • cuike519
  • cuike519
  • 2004年05月07日 13:21
  • 2378

如何给DataGrid添加两个的题头分类显示 cuike519 [原作]

标题   如何给DataGrid添加两个的题头分类显示     cuike519 [原作] 关键字   双题头,分类 出处          我在写PowerDataGri...
  • rickjelly2004
  • rickjelly2004
  • 2004年07月01日 09:58
  • 606

easyui 如何同时左右显示两个datagrid

||||||
  • jia_zhengshen
  • jia_zhengshen
  • 2017年11月11日 21:35
  • 485

在datagrid里添加CheckBox列、赋值、修改!!

using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System....
  • CSDNATM
  • CSDNATM
  • 2004年10月26日 11:44
  • 2831

Datagrid加入一列显示行号 or 自增列

在VB6中,Datagrid控件应该是初学者最喜使用的控件之一,它对数据简单绑定却又往往束缚住手脚。正确的使用的Datagrid必须首先了解它的本质。Datagrid的本质在于它从来就不是一个真正的网...
  • daisy8675
  • daisy8675
  • 2007年08月31日 16:28
  • 5048

给 DataGrid 增加序列号的两种方法

给 DataGrid 增加序列号的两种方法 ??? 在页面显示一个 DataGrid 的时候,常常需要显示一个序列,如图所示: ??? ??? 同时根据 DataGrid 的过滤条件不同,需要也发生相...
  • xuandhu
  • xuandhu
  • 2004年12月31日 08:28
  • 1426

一个WINFORM上面有两个DataGrid,当选中其中一个的时候,怎么让另一个CurrentRowIndex变成空?

你所说的要求是可以实现的如果设置为CurrentRowIndex = -1;那么按回确实会出错所以,只能取消选择已经选择的行,也就是用UnSelect()的方法在dataGrid的Leave事件中写如...
  • xlovem
  • xlovem
  • 2004年11月10日 23:11
  • 917

在DATAGRID中使用分类标题

在DATAGRID中使用分类标题 ,我的一篇翻译文章 http://tech.ccidnet.com/pub/article/c322_a70590_p1.html...
  • mdot
  • mdot
  • 2004年06月22日 22:36
  • 1346

Objective-C 给分类添加属性——关联对象

给分类添加“属性”咱们知道,分类中可以添加方法,却无法添加属性。那咱们有其他的方法来实现吗? 先来看看下面这段代码:@interface UIView (nl_Frame) @property (n...
  • womendeaiwoming
  • womendeaiwoming
  • 2015年06月07日 13:59
  • 3819

wpf datagrid 中按钮 动态显示

//若datagrid出现滚动条可能会出现问题需要加上下面俩句话。 //因为出滚动条时,为了显示加速,datagrid会加载一部分数据。另一些数据当滚动时在加载进去 这样初始化获取不到这些数据。 ...
  • hdxhdx11
  • hdxhdx11
  • 2014年08月13日 09:46
  • 1686
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:如何给DataGrid添加两个的题头分类显示
举报原因:
原因补充:

(最多只允许输入30个字)