日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

在DataGrid中合并单元格行

發布時間:2023/12/9 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 在DataGrid中合并单元格行 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

最近在做項目的時候經常遇到要合并單元格的情況,發現這個東西.net中并沒有現成的方法,研究了一下,總結了兩種方法。
這個主要都是行合并的,有以下兩種情況
1、多行合并為一行,其中將某個或某幾個單元格的內容合并起來
???? 原始樣式:
????????????column1???? column2
????????????????1????????????????????a
????????????????1????????????????????b
????????????????1????????????????????c
????????????????1????????????????????d
????????????????2????????????????????q
????????????????2????????????????????w
????????????????2????????????????????e
????? 需要效果:
????????????column1????????column2
????????????????1????????????????????a\b\c\d
????????????????2????????????????????q\w\e
??????代??????? 碼:?
?????????????????


?????
private?void?DataGrid_CaseTeamList_Bind()?
????????
{?
????????????取得數據部分代碼省略?
????????????dsSpeTeam?
=?o.GetData(strSQL).Tables[0].DefaultView;?
????????????DataSet?dsSpeL?
=?o.GetData(strSQLSpe);?
????????????DataGrid_CaseTeamList.ItemCreated?
+=new?DataGridItemEventHandler(DataGrid_CaseTeamList_ItemCreated);?
????????????DataGrid_CaseTeamList.DataSource?
=?dsSpeL.Tables[0].DefaultView;?
????????????DataGrid_CaseTeamList.DataBind();?
????????}
?
?
????????
private?void?DataGrid_CaseTeamList_ItemCreated(object?sender,?DataGridItemEventArgs?e)?
????????
{?
????????????DataGridItem?item?
=?e.Item;?
????????????
if?(item.ItemType?==?ListItemType.Item?||?item.ItemType?==?ListItemType.AlternatingItem)?
????????????
{?
????????????????DataRowView?row?
=?(DataRowView)e.Item.DataItem;?
????????????????
//set?the?filter?condition?
????????????????string?sSpecialist?=?row["column1"].ToString();?
????????????????dsSpeTeam.RowFilter?
=?string.Format("?column1?=?'{0}'",?sSpecialist.Replace("'",?"''"));?
?????????????????
?????????????????
//----------------------------------------------------------
????????????????
//?若要將checkbox?合并放入,可使用下面代碼?代替以下部分
?????????????????
//????CheckBoxList?boxList?=?new?CheckBoxList();
????????????????
//????boxList.RepeatColumns??=?2;
????????????????
//????boxList.RepeatDirection?=?RepeatDirection.Horizontal;
????????????????
//????boxList.DataSource?=?dsSpeTeam;
????????????????
//????boxList.DataTextField?=?"Team";
????????????????
//????boxList.DataValueField?=?"Team";
????????????????
//????PlaceHolder?holder?=?(PlaceHolder)?e.Item.FindControl("TeamArray");
????????????????
//????holder.Controls.Add(boxList);
????????????????
//----------------------------------------------------------
?????????????????DataRowView?row1?=?null;?
????????????????IEnumerator?Enum?
=?dsSpeTeam.GetEnumerator();?
????????????????
string?strTeam=?"";?
????????????????
while?(Enum.MoveNext())?
????????????????
{?
????????????????????row1?
=?(DataRowView)?Enum.Current;?
????????????????????strTeam?
=?strTeam?+?row1["column2"]?+?"/";?
????????????????}
?
????????????????Label?lbl?
=?new?Label();?
????????????????
if?(strTeam.Length?>?0)?
????????????????
{?
????????????????????lbl.Text?
=?strTeam.Substring(0,strTeam.Length-1);?
????????????????}
?
????????????????
else?
????????????????
{?
????????????????????lbl.Text?
=?" ";?
????????????????}
?
????????????????lbl.Style.Add(
"padding-left","5px");?
????????????????
//在datagrid中,合并目標列放一個PlaceHolder控件?
????????????????
//------------------------------------------------------------
????????????????PlaceHolder?holder?=?(PlaceHolder)?e.Item.FindControl("column2Value");?
????????????????holder.Controls.Add(lbl);?
????????????}
?
????????}
?


2、將Datagrid中的某些相同的單元格合并
????????原始樣式:????
????????????????Column1????????????Column2
????????????????????1????????????????????????????????a
????????????????????1????????????????????????????????b
????????????????????1????????????????????????????????c
?????????????????????2????????????????????????????????x
?????????????????????2????????????????????????????????y
??????????????????????2???????????????????????????????z
????????需要效果:
????????????????Column1????????????Column2
?????????????????????????????????????????????????????a
???????????????????????1????????????????????????????b
?????????????????????????????????????????????????????c
_____________________________
??????????????????????????????????????????????????????x
????????????????????????2????????????????????????????y
???????????????????????????????????????????????????????z

????????代??????? 碼:
????????????????

????????/**////?<summary>
????????
///?used?to?merge?cells
????????
///?</summary>
????????
///?<param?name="dg">datagrid?will?be?merged</param>
????????
///?<param?name="GroupColumn">merged?column</param>
????????
///?<param?name="compareColumn">basis?column</param>

????????private?void?spanRow(DataGrid?dg,int?GroupColumn,int?compareColumn)
????????
{
????????????
int?i?=?0;
????????????
int?j?=?0;
????????????
int?rowSpan;
????????????
string?strTemp?=?"";
?
????????????
for(i=0;i<dg.Items.Count;i++)
????????????
{
????????????????rowSpan?
=?1;
????????????????strTemp?
=?dg.Items[i].Cells[compareColumn].Text;
????????????????
for?(j=i+1;j<dg.Items.Count;j++)
????????????????
{
????????????????????
if?(string.Compare(strTemp,dg.Items[j].Cells[compareColumn].Text)?==?0)
????????????????????
{
????????????????????????rowSpan?
+=?1;
????????????????????????dg.Items[i].Cells[GroupColumn].RowSpan?
=?rowSpan;
????????????????????????dg.Items[j].Cells[GroupColumn].Visible?
=?false;
????????????????????}

????????????????????
else
????????????????????
{
????????????????????????
break;
????????????????????}

????????????????}

????????????????i?
=?j?-1;
????????????}

????????}


????????以上兩種方法可合并使用

轉載于:https://www.cnblogs.com/dsliang/archive/2010/07/01/1769201.html

總結

以上是生活随笔為你收集整理的在DataGrid中合并单元格行的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。