自动填充固定行数的GridView

2019-12-05 09:26:16 来源: 双鸭山信息港

在有些开发实践中,有时候为了页面美观的需要,需要将GridView填充成固定行数的表格,下面这个方法实现了这种填充的功能。此方法可以处理自动产生列和模版列。注意:由于时间关系,没有实现对完全空白数据的填充,呵呵,如果需要,可以自己添加哈:)!

C#:

<%@PageLanguage="C#"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN"

"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<scriptrunat="server">

//计算数据,完全可以从数据看取得

ICollectionCreateDataSourceByXianhuiMeng()

{

System.Data.DataTabledt=newSystem.Data.DataTable();

System.Data.DataRowdr;

dt.Columns.Add(newSystem.Data.DataColumn("学生班级",typeof(System.String)));

dt.Columns.Add(newSystem.Data.DataColumn("学生姓名",typeof(System.String)));

dt.Columns.Add(newSystem.Data.DataColumn("语文",typeof(System.Decimal)));

dt.Columns.Add(newSystem.Data.DataColumn("数学",typeof(System.Decimal)));

dt.Columns.Add(newSystem.Data.DataColumn("英语",typeof(System.Decimal)));

dt.Columns.Add(newSystem.Data.DataColumn("计算机",typeof(System.Decimal)));

for(inti=0;i<8;i++)

{

System.Randomrd=newSystem.Random(Environment.TickCount*i);;

dr=dt.NewRow();

dr[0]="班级"+i.ToString();

dr[1]="【孟子E章】"+i.ToString();

dr[2]=System.Math.Round(rd.NextDouble()*100,2);

dr[3]=System.Math.Round(rd.NextDouble()*100,2);

dr[4]=System.Math.Round(rd.NextDouble()*100,2);

dr[5]=System.Math.Round(rd.NextDouble()*100,2);

dt.Rows.Add(dr);

}

System.Data.DataViewdv=newSystem.Data.DataView(dt);

returndv;

}

//设置每页显示的行数

intTotalRowCount=12;

//自动填充的行数

intnumCount=0;

protectedvoidPage_Load(objectsender,EventArgse)

{

if(!Page.IsPostBack)

{

GridView1.DataSource=CreateDataSourceByXianhuiMeng();

GridView1.DataBind();

}

}

protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)

{

if(e.Row.RowType==DataControlRowType.DataRow)

{

//计算自动填充的行数

numCount++;

}

if(e.Row.RowType==DataControlRowType.Footer)

{

//计算完毕,在此添加缺少的行

inttoLeft=TotalRowCount-numCount;

intnumCols=GridView1.Rows[0].Cells.Count;

for(inti=0;i<toLeft;i++)

{

GridViewRowrow=newGridViewRow(-1,-1,DataControlRowType.EmptyDataRow,DataControlRowState.Normal);

for(intj=0;j<numCols;j++)

{

TableCellcell=newTableCell();

cell.Text="&nbsp;";

row.Cells.Add(cell);

}

GridView1.Controls[0].Controls.AddAt(numCount+1+i,row);

}

}

}

</script>

<htmlxmlns="http://www.w3.org/1999/xhtml">

<headrunat="server">

<title>自动填充固定行数的GridView</title>

</head>

<body>

<formid="form1"runat="server">

<asp:GridViewID="GridView1"runat="server"OnRowDataBound="GridView1_RowDataBound"

Font-Size="12px"CellPadding="3">

<HeaderStyleBackColor="#EDEDED"/>

<Columns>

<asp:TemplateFieldHeaderText="模版列">

<ItemTemplate>

<%#Eval("学生姓名")%>

</ItemTemplate>

</asp:TemplateField>

</Columns>

</asp:GridView>

</form>

</body>

</html>

查看本文来源

复旦大学附属中山医院怎么样
东莞广济医院刘志刚
雅安治疗盆腔炎医院
杭州治癫痫病医院那家
德阳治疗宫颈炎方法
本文标签: