如何实现dataGrid表头的动态合并?? 我的DataGrid是动态创建列的!但表头有些要合并,合并的条件我就想通过字段名来判断!请问怎么实现这个功能,比较急谢谢各位了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { if(e.Item.ItemType == ListItemType.Header) { for(int i=0;i<e.Item.Cells.Count-1;i++) { string tmp = e.Item.Cells[i].Text; if(tmp == "AAA") { e.Item.Cells[i].ColumnSpan = 2; e.Item.Cells[i+1].Visible = false; } } } } 谢谢 Eddie005(♂) 暴赱 『零零伍』(︶︵︶) 我的表头的两行的,形式是这样的:| AAA ||AAA1 |AAA2 |该怎么实现呢? if (e.Item.ItemType == ListItemType.Header) { e.Item.Cells[0].RowSpan = 2; e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Center; e.Item.Cells[0].Text = "分公司"; e.Item.Cells[2].RowSpan = 2; e.Item.Cells[3].ColumnSpan = 3; e.Item.Cells[3].HorizontalAlign = HorizontalAlign.Center; e.Item.Cells[3].Text = "其中"; e.Item.Cells[4].Visible=false; e.Item.Cells[5].Visible =false; e.Item.Cells[6].RowSpan = 2; e.Item.Cells[7].ColumnSpan = 2; e.Item.Cells[7].HorizontalAlign = HorizontalAlign.Center; e.Item.Cells[7].Text = "其中"; e.Item.Cells[8].Visible = false; } else { if (e.Item.Cells[0].Text == "分公司") { e.Item.Cells[0].Visible = false; } if (e.Item.Cells[2].Text == "长途话务量合计") { e.Item.Cells[2].Visible = false; } if (e.Item.Cells[6].Text == "除去116、95和960后的长途话务量合计") { e.Item.Cells[6].Visible = false; } if (e.Item.Cells[3].Text == "116") { e.Item.Cells[3].BackColor = System.Drawing.Color.LightGreen; } if (e.Item.Cells[4].Text == "960") { e.Item.Cells[4].BackColor = System.Drawing.Color.LightGreen; } if (e.Item.Cells[5].Text == "95") { e.Item.Cells[5].BackColor = System.Drawing.Color.LightGreen; } if (e.Item.Cells[7].Text =="IP长途") { e.Item.Cells[7].BackColor = System.Drawing.Color.LightGreen; } if (e.Item.Cells[8].Text == "普通长途") { e.Item.Cells[8].BackColor = System.Drawing.Color.LightGreen; } } 多层表头就看这里:http://dev.csdn.net/develop/article/48/48988.shtm //用来判断两个(上下)Pager的位置 private bool upPager = true; private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e) { //获取DataGrid控件中项的类型 ListItemType ItemType = e.Item.ItemType; //判断是否是页导航项 if (ItemType == ListItemType.Pager) { //判断是否是第一个页导航项 if (upPager) { //根据DataGrid控件的项定义单元格对象 TableCell cellPersonal = (TableCell) e.Item.Controls[0]; //移出该单元格内的所有控件 cellPersonal.Controls.Clear(); //设置单元格对象的背景色 cellPersonal.BackColor = Color.Orange; //设置单元格对象的前景色 cellPersonal.ForeColor = Color.Black; //设置该单元格对象跨3列 cellPersonal.ColumnSpan = 2; //设置该单元格对象的对齐方式为居中 cellPersonal.HorizontalAlign = HorizontalAlign.Center; //添加单元格内的文本内容 cellPersonal.Controls.Add(new LiteralControl("姓名")); //定义单元格对象 TableCell cellWork = new TableCell(); //设置单元格对象的背景色 cellWork.BackColor = Color.OrangeRed; //设置单元格对象的前景色 cellWork.ForeColor = Color.Black; //设置该单元格对象跨2列 cellWork.ColumnSpan = 3; //设置该单元格对象的对齐方式为居中 cellWork.HorizontalAlign = HorizontalAlign.Center; //添加单元格内的文本内容 cellWork.Controls.Add(new LiteralControl("联系方式")); //在该项的控件集合中添加单元格对象 e.Item.Controls.Add(cellWork); //改变Pager标志 upPager = false; } } } private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e) { //改变Pager标志的值使其可以在每次触发分页事件时都设置标题头 upPager = true; //设置新的页面索引值 dgDoubleHeader.CurrentPageIndex = e.NewPageIndex; //重新进行数据绑定 DataGridDataBind(); } xuyiazl() 给的方法还是不行啊! 表头还只是一行阿!我要得形式是:| AAA | BBB | ccc | ddd ||aaa1|aaa2|bbb1|bbb2| |ddd1|ddd2|就是说有的字段要合并而有的不需要合并!字段是动态创建的,合并也要动态合并! job吗? 是就问问同事,不是就丢下吧~对新手来说这样的问题没什么价值~ Eddie005(♂) 暴赱 『零零伍』(︶︵︶) 你好!我是为了job,可我也没有可问得同事,就得我一个人弄,我也没有办法!还有,这个问题为什么对新手来说没有价值阿? 请问web网页程序用access有什么缺点? JSON转换 很简单的一个问题,关于反斜杠的作用 cookie! 怎么保存用户名 和怎么取出用户名 急。。高分。。如何在打开网页时弹出一个对话框,最好能防拦截的。。 高手觉的简单的经典问题 利用Asp.net读取Excel文件时为何拒绝访问? 谁知道如何用outlook组件来发送邮件? 两个问题百分拿:上传的文件(50分)?四舍五入(50分)? 谁能给讲讲.net中绑定的编程思想和其作用,以及如何灵活使用?来者有份。 sdfjsklfdjsdffj写成..jsdffj的正则怎么写 关于GridView的一个小显示问题
{
if(e.Item.ItemType == ListItemType.Header)
{
for(int i=0;i<e.Item.Cells.Count-1;i++)
{
string tmp = e.Item.Cells[i].Text;
if(tmp == "AAA")
{
e.Item.Cells[i].ColumnSpan = 2;
e.Item.Cells[i+1].Visible = false;
}
} }
}
| AAA |
|AAA1 |AAA2 |该怎么实现呢?
{
e.Item.Cells[0].RowSpan = 2;
e.Item.Cells[0].HorizontalAlign = HorizontalAlign.Center;
e.Item.Cells[0].Text = "分公司";
e.Item.Cells[2].RowSpan = 2;
e.Item.Cells[3].ColumnSpan = 3;
e.Item.Cells[3].HorizontalAlign = HorizontalAlign.Center;
e.Item.Cells[3].Text = "其中";
e.Item.Cells[4].Visible=false;
e.Item.Cells[5].Visible =false;
e.Item.Cells[6].RowSpan = 2;
e.Item.Cells[7].ColumnSpan = 2;
e.Item.Cells[7].HorizontalAlign = HorizontalAlign.Center;
e.Item.Cells[7].Text = "其中";
e.Item.Cells[8].Visible = false;
}
else
{
if (e.Item.Cells[0].Text == "分公司")
{
e.Item.Cells[0].Visible = false;
}
if (e.Item.Cells[2].Text == "长途话务量合计")
{
e.Item.Cells[2].Visible = false;
}
if (e.Item.Cells[6].Text == "除去116、95和960后的长途话务量合计")
{
e.Item.Cells[6].Visible = false;
}
if (e.Item.Cells[3].Text == "116")
{
e.Item.Cells[3].BackColor = System.Drawing.Color.LightGreen;
}
if (e.Item.Cells[4].Text == "960")
{
e.Item.Cells[4].BackColor = System.Drawing.Color.LightGreen;
}
if (e.Item.Cells[5].Text == "95")
{
e.Item.Cells[5].BackColor = System.Drawing.Color.LightGreen;
}
if (e.Item.Cells[7].Text =="IP长途")
{
e.Item.Cells[7].BackColor = System.Drawing.Color.LightGreen;
}
if (e.Item.Cells[8].Text == "普通长途")
{
e.Item.Cells[8].BackColor = System.Drawing.Color.LightGreen;
}
}
private bool upPager = true;
private void dgDoubleHeader_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
//获取DataGrid控件中项的类型
ListItemType ItemType = e.Item.ItemType;
//判断是否是页导航项
if (ItemType == ListItemType.Pager)
{
//判断是否是第一个页导航项
if (upPager)
{
//根据DataGrid控件的项定义单元格对象
TableCell cellPersonal = (TableCell) e.Item.Controls[0];
//移出该单元格内的所有控件
cellPersonal.Controls.Clear();
//设置单元格对象的背景色
cellPersonal.BackColor = Color.Orange;
//设置单元格对象的前景色
cellPersonal.ForeColor = Color.Black;
//设置该单元格对象跨3列
cellPersonal.ColumnSpan = 2;
//设置该单元格对象的对齐方式为居中
cellPersonal.HorizontalAlign = HorizontalAlign.Center;
//添加单元格内的文本内容
cellPersonal.Controls.Add(new LiteralControl("姓名"));
//定义单元格对象
TableCell cellWork = new TableCell();
//设置单元格对象的背景色
cellWork.BackColor = Color.OrangeRed;
//设置单元格对象的前景色
cellWork.ForeColor = Color.Black;
//设置该单元格对象跨2列
cellWork.ColumnSpan = 3;
//设置该单元格对象的对齐方式为居中
cellWork.HorizontalAlign = HorizontalAlign.Center;
//添加单元格内的文本内容
cellWork.Controls.Add(new LiteralControl("联系方式"));
//在该项的控件集合中添加单元格对象
e.Item.Controls.Add(cellWork);
//改变Pager标志
upPager = false;
}
}
} private void dgDoubleHeader_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEventArgs e)
{
//改变Pager标志的值使其可以在每次触发分页事件时都设置标题头
upPager = true;
//设置新的页面索引值
dgDoubleHeader.CurrentPageIndex = e.NewPageIndex;
//重新进行数据绑定
DataGridDataBind();
}
我要得形式是:| AAA | BBB | ccc | ddd |
|aaa1|aaa2|bbb1|bbb2| |ddd1|ddd2|就是说有的字段要合并而有的不需要合并!
字段是动态创建的,合并也要动态合并!
我是为了job,可我也没有可问得同事,就得我一个人弄,我也没有办法!还有,这个问题为什么对新手来说没有价值阿?