[Asp.Net+C#]Datagrid使用技巧一(怎样灵活控制表头)
生活随笔
收集整理的這篇文章主要介紹了
[Asp.Net+C#]Datagrid使用技巧一(怎样灵活控制表头)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天在工作做到處數據為Excel時,在用到DataGrid時,要求表頭為兩行?,以前沒用過,把我難到了,又不想用用客戶端的Table,覺得可讀性太差,研究了一會,終于找到了解決方法,先發上來,由于時間關系,就不整理了。呵呵。
private void Datagrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
??{
???ListItemType itemtype=e.Item.ItemType; //獲得當前創建行的類別
???int j=0;
???if(itemtype==ListItemType.Header)//當執行到表頭是執行
???{
????DataGridItem trnew=new DataGridItem(0,0,ListItemType.Header);
????for(int i=0;i<Datagrid1.Columns.Count;i++){
?????string strValue=Datagrid1.Columns[i].HeaderText;
?????if(strValue.Substring(0,2).Equals("A卷"))
?????{
??????string[] strArr=strValue.Split(',');
??????trnew.Cells.Add(new TableCell());
??????trnew.Cells[j].Text=strArr[1];
??????trnew.Cells[j].ColumnSpan=3;
??????trnew.Cells[j].Width=Unit.Pixel(180);
??????trnew.Cells[j].Height=Unit.Pixel(22);
??????e.Item.Cells[i].Text=strArr[0];
??????j=j+1;
?????}
?????else{
??????if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="綜合")
??????{
???????trnew.Cells.Add(new TableCell());
???????trnew.Cells[j].Text=e.Item.Cells[i].Text;
???????trnew.Cells[j].RowSpan=2;
???????j=j+1;
??????}
?????}
????}
????j=0;
????for(int i=0;i<Datagrid1.Columns.Count;i++)
????{
?????if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="綜合"&&Datagrid1.Columns[i].HeaderText.Substring(0,2)!="A卷")
?????{
??????e.Item.Cells.RemoveAt(j);
?????}
?????else{
??????j=j+1;
?????}
????}
????Datagrid1.Controls[0].Controls.AddAt(0,trnew);
???}??
??}
private void Datagrid1_ItemCreated(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
??{
???ListItemType itemtype=e.Item.ItemType; //獲得當前創建行的類別
???int j=0;
???if(itemtype==ListItemType.Header)//當執行到表頭是執行
???{
????DataGridItem trnew=new DataGridItem(0,0,ListItemType.Header);
????for(int i=0;i<Datagrid1.Columns.Count;i++){
?????string strValue=Datagrid1.Columns[i].HeaderText;
?????if(strValue.Substring(0,2).Equals("A卷"))
?????{
??????string[] strArr=strValue.Split(',');
??????trnew.Cells.Add(new TableCell());
??????trnew.Cells[j].Text=strArr[1];
??????trnew.Cells[j].ColumnSpan=3;
??????trnew.Cells[j].Width=Unit.Pixel(180);
??????trnew.Cells[j].Height=Unit.Pixel(22);
??????e.Item.Cells[i].Text=strArr[0];
??????j=j+1;
?????}
?????else{
??????if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="綜合")
??????{
???????trnew.Cells.Add(new TableCell());
???????trnew.Cells[j].Text=e.Item.Cells[i].Text;
???????trnew.Cells[j].RowSpan=2;
???????j=j+1;
??????}
?????}
????}
????j=0;
????for(int i=0;i<Datagrid1.Columns.Count;i++)
????{
?????if(Datagrid1.Columns[i].HeaderText!="B卷"&&Datagrid1.Columns[i].HeaderText!="綜合"&&Datagrid1.Columns[i].HeaderText.Substring(0,2)!="A卷")
?????{
??????e.Item.Cells.RemoveAt(j);
?????}
?????else{
??????j=j+1;
?????}
????}
????Datagrid1.Controls[0].Controls.AddAt(0,trnew);
???}??
??}
轉載于:https://www.cnblogs.com/JimZhang/archive/2005/08/30/226554.html
總結
以上是生活随笔為你收集整理的[Asp.Net+C#]Datagrid使用技巧一(怎样灵活控制表头)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Rails的blog: typo
- 下一篇: 在C#程序设计中使用Win32 API