asp.net中DataGrid雙行跨列跨行復(fù)雜表頭設(shè)計(jì)心得!
2024-07-10 13:03:51
供稿:網(wǎng)友
一、datagrid的屬性設(shè)置
1. allowpaging: true
2. pagestyle->position: topandbottom
3. 可選:pagestyle->horizonalign: center(使文本居中顯示)
4. 可選:itemstyle->horizonalign: center(使文本居中顯示)
二、代碼部分
1.首先,使datagrid綁定數(shù)據(jù)庫(kù)中某個(gè)表,例如:
private void page_load(object sender, system.eventargs e)
{
// 在此處放置用戶代碼以初始化頁(yè)面
if(!ispostback)
{
sqlconnection myconn=new sqlconnection("server=localhost;uid=sa;pwd=sa;database=db_test");
sqldataadapter da=new sqldataadapter("select * from 個(gè)人",myconn);
dataset ds=new dataset();
da.fill(ds,"gr");
dggeren.datasource=ds.tables["gr"].defaultview;
dggeren.databind();
}
2.為datagrid添加itemcreated事件的處理函數(shù)、
3.為了判斷datagrid中的兩個(gè)(上下)pager的位置,我們可以使用一個(gè)全局變量來(lái)判斷。
定義一個(gè)全局變量 private int m_createpagetimes = 0;
4.為datagrid的itemcreated事件的處理函數(shù)添加內(nèi)容,如下:
private void dggeren_itemcreated(object sender, system.web.ui.webcontrols.datagriditemeventargs e)
{
switch(e.item.itemtype)
{
//case(listitemtype.pager):
case listitemtype.pager:
{
if(m_createpagetimes == 0)
{
datagriditem row=(datagriditem)e.item;
row.cells.clear();
//row.backcolor=color.navy; //背景色
//row.forecolor=color.red; //前景色
row.horizontalalign=horizontalalign.center;//使文本居中顯示
tablecell cell0=new tablecell();
cell0.rowspan=2;
cell0.controls.add(new literalcontrol("姓名"));
tablecell cell1=new tablecell();
cell1.columnspan=2; //默認(rèn)的columnspan值為1
cell1.text="住房地址信息";
//也可如此:cell1.controls.add(new literalcontrol("住房地址信息"));
//tablecell cell2=new tablecell();
//cell2.controls.add(new literalcontrol(""));
tablecell cell2=new tablecell();
cell2.rowspan=2;
cell2.text="出生日期";
row.cells.add(cell0);
row.cells.add(cell1);
row.cells.add(cell2);
m_createpagetimes++;
}
break;
}
case listitemtype.header:
{
datagriditem head=(datagriditem)e.item;
head.cells.clear();
//head.verticalalign=verticalalign.middle;
//head.horizontalalign=horizontalalign.center;
//tablecell cell00=new tablecell();
//cell00.rowspan=2;
//cell00.text="姓名";
tablecell cell01=new tablecell();
cell01.text="樓號(hào)";
tablecell cell02=new tablecell();
cell02.text="房號(hào)";
//tablecell cell03=new tablecell();
//cell03.text="出生日期";
//head.cells.add(cell00);
head.cells.add(cell01);
head.cells.add(cell02);
//head.cells.add(cell03);
break;
}
}
}
三、最后效果如下圖:
四、望大家指點(diǎn)!