為Gridview控制項新增多行表頭(之一)

2021-05-01 10:42:47 字數 1520 閱讀 6122

在實際工作中,經常看到電子版或者紙質版的**。這些**,通常都不是一行表頭,需要2行或者3行,只有這樣的表頭,才能明確表示表中資料的具體涵義。並且多行表頭中,將資料相同的單元格進行合併,包括橫向合併、縱向合併。

那麼,我們在使用gridview時,如何才能實現多行表頭呢?

主要有三種方法,①是利用gridviwrow物件的header型別生成物件;②直接將表頭內容作為普通資料顯示,然後再通過樣式,將表頭的背景色與其它的行分開,模擬出表頭效果;③利用protected void gridview1_rowcreated(object sender, gridviewroweventargs e)事件,在生成客戶端的html時,生成需要的**。

注意:這些操作,都是放在gridview繫結完資料這後執行,即放在gridview1.datasource=dt;gridview1.databind();之後執行。資料的列為自動繫結,沒有為每列指定要繫結的字段(autogeneratecolumns屬性為true,預設)。

道理講完了,是不是想動手了,現在開始吧。

步1、將乙個gridview控制項拖放在頁面上

步2、實現多表頭

方法1:(適用於多行)

看完了效果,再來看看**吧

private void addheader()//為gridview新增表頭

table tbl = (table)gridview1.controls[0];

#region 新增三行表頭

string ssql = "select coltitle1,coltitle2,coltitle3 from xt_grid where (grid_code = 'cb_costcollect')";

dataset dgrid = dbhelpersql.query(ssql);

if (dgrid.tables[0].rows.count > 0)

tbl.controls.addat(0, header0);

tbl.controls.addat(1, header1);

tbl.controls.addat(2, header2);

}#endregion

#region 合併表頭

for (int i = 0; i < dgrid.tables[0].rows.count; i++)

else}}

}for (int i = 0; i < 2; i++)

else

}else}}

#endregion

}注意:表頭的名稱存放在了自建的乙個表xt_grid裡面,對應的字段分別是:第一行表頭-coltitle1,第二行表頭-coltitle2,第三行表頭-coltitle3。

說明:①清除、隱藏原來的表頭;②通過gridview1.controls[0]獲取table物件;③查詢表頭資訊,此處為三行,迴圈生成gridviewrow物件,型別為頭(header),並新增到table中;④迴圈合併行,列。

方法二(為gridview控制項新增多行表頭(之二))

方法三(為gridview控制項新增多行表頭(之三))

GridView控制項新增空行

gridview控制項在使用分頁時,如果繫結的資料不滿一頁,那麼gridview 僅顯示繫結的資料。例如,將gridview的 pagesize 設定為 10,每頁顯示 10 條資料,如果當前查詢僅返回了 6 條資料,那麼gridview就顯示這 6 條數 據 如果當前查詢返回了多於 10 條資料,...

如何為DATATABLE新增多行 轉貼

datacolumn 是用來模擬物理資料庫中的列。datacolumn 的組合組成了 datatable 中列的架構。生成 datatable 架構的方法就是向 datacolumncollection 中新增datacolumn 物件來生成架構。同物理資料庫一樣,列是有型別的,比如 varchar...

為GridView控制項的資料行新增滑鼠動作

前台 onrowcreated gridview1 rowcreated connectionstrings databindcontrolsconnectionstring selectcommand select stuid stuname stuage grade from student 後...