可能么?既然数据已经按列进行了划分,还想再重新组织,是不是对DataGrid要求太高了?感觉不应该什么想法都用他去实现.要那么复杂,不如自己写组件了.
解决方案 »
- 命名空间已引用 为何用类的时候 使用还要加上命名空间
- 关于TreeView的问题
- 今天架论坛遇到的一个问题!
- 我用wmi修改服务,也给aspnet用户添加了相应的权限但是aspnet用户还是修改不了,请高手指点
- asp.net C# 如何取得瀏覽器的地址欄的地址信息?(注意是地址如www.163.com)
- [求助] 怎样在后台通过读数据库为条件判断执行一段javascript的confirm,OK就执行,Cancel就不执行?
- 急...........服务器最近经常莫名其妙出现网络中断.
- C# HttpWebRequest 上传图片的问题
- 怎么去掉那些自动生成的东西
- MVC4, Area中Ajax.ActionLink访问[HttpPost]属性的Action无效
- 怎样使本地用VS建立的站点上传到服务器后也能正常运行??
- Response.Write到底能不能在类库中使用???
你可以在绑定的DataTable里面加入一个临时行,并且使这一行处于第一行,然后修改DataGrid的Header为"一年级 二年级 三年级",然后修改DataGrid的第一行为列的标题。
如果是如你举的例是两行标题的话可以实现。
你定义DataGrid有分页导航,且上下都有,然后在ItemCreate事件中改写其分页栏。也就是说,我们所要做的操作是改写上面的分页导航栏,而其真正的标题栏和下方的分页栏是不变的。
代码如下:
protected bool m_bFirstTime = true;private void DataGrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
ListItemType elemType = e.Item.ItemType;
if (elemType == ListItemType.Pager )
{
if (m_bFirstTime)
{
// header1
TableCell cell0 = (TableCell) e.Item.Controls[0];
cell0.Controls.Clear();
cell0.MergeStyle(DataGrid1.HeaderStyle);
cell0.BackColor = Color.Gainsboro;
cell0.ForeColor = Color.Black ;
cell0.ColumnSpan = 3;
cell0.HorizontalAlign = HorizontalAlign.Left ;
//string Count=ds.Tables[0].DefaultView.Count.ToString();
cell0.Controls.Add(new LiteralControl("一年级"));
// header2
TableCell cell1 = new TableCell();
cell1.MergeStyle(DataGrid1.HeaderStyle);
cell1.BackColor = Color.Navy;
cell1.ForeColor = Color.Yellow;
cell1.ColumnSpan = 3;
cell1.HorizontalAlign = HorizontalAlign.Center;
cell1.Controls.Add(new LiteralControl("Job"));
e.Item.Controls.Add(cell1);
m_bFirstTime = false;
}
else
{
m_bFirstTime = true;
}
}
}
我这是一个其有6列,主标题共两个的示例,你根据你的实际情况来更改。
谢谢sumanden(心头慌,打中张) ,给100分