日期:2014-05-19  浏览次数:20355 次

datagrid合并列
我要在datagrid是实现下面效果.也就是第一行全部合并了.请问要怎样实现呀?

                                          货盘    
集装箱货盘                       300       查看         未申请    
散杂货盘                           300       查看         未申请    
历史集装箱货盘               200       查看         未申请    
历史散杂货盘                   200       查看         未申请    


------解决方案--------------------
protected void DataGrid1_ItemDataBound(object sender, DataGridItemEventArgs e) { if (e.Item.ItemType == ListItemType.Header) { DataGridItem item = new DataGridItem(0, 0, ListItemType.Item); TableCell cell = new TableCell(); cell.ColumnSpan = e.Item.Cells.Count; cell.HorizontalAlign = HorizontalAlign.Center; cell.Text = "货盘 "; item.Cells.Add(cell); this.DataGrid1.Controls[0].Controls.Add(item); } }
------解决方案--------------------
这么弄
==============================
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
TableCell tc0= e.Item.Cells[0];
TableCell tc1=e.Item.Cells[1];
TableCell tc2=e.Item.Cells[2];
TableCell tc3=e.Item.Cells[3];
tc0.Visible=false;
tc2.Visible=false;
tc3.Visible=false;
tc1.ColumnSpan=4;
}
}
===========================
因为合并后 【货盘】的位置就不好控制了 你自己慢慢调整下吧 ^_^
------解决方案--------------------
if(perent_id==0)
{
e.Item.Cells[0].ColumnSpan = e.Item.Cells.Count;
//...
while(e.Item.Cells.Count > 1)
{
e.Item.Cells.RemoveAt(1);
}

}