Repeater控件動態(tài)變更列(Header,Item和Foot)信息實現(xiàn)思路
需求開發(fā)一個小報表,顯示最近五個月的summary的數(shù)量統(tǒng)計,報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變?yōu)锳pr 2013。
下圖中,最底一行是顯示每一列的總數(shù)(除第一列外)。
為了這個報表,Insus.NET決定使用Repeater控件來實現(xiàn)。難度在于動態(tài)顯法第二列至第六列的列名,以及綁定數(shù)據(jù)。最后一行計算總計的,只要完成上面的動態(tài)綁定之后,也算不上問題,Repeater的FooterTemplate顯示某列總計方法,可以參考這篇:http://m.fzitv.net/article/34972.htm由于整個報表,列數(shù)一定,共六列,因此我們可以把這個寫死。
首先是HeaderTemplate,內(nèi)嵌一個table,設(shè)計好六列,每列拉一個Label,并分別設(shè)置好Label的ID,最好讓它們似帶有索引的序數(shù):
接下來是ItemTemplate設(shè)計,可以參考HeaderTemplate的設(shè)計方式:
最后是FooterTemplate的設(shè)計,設(shè)計好Label的ID,td文本對齊以及背景顏色:
三個Template的Label的ID都不一樣,但有一些規(guī)律,這樣方便在后臺好 FindControl以及將來重構(gòu)好控制。
上面全是html的設(shè)計,下面將是程序開發(fā)。
//實例化對象,以及宣告一個DataTable對象objDt。
PrintLog objPrintLog = new PrintLog();
DataTable objDt;
//宣告5個變量,將用來存儲那5個月份每個部分的數(shù)量
decimal c1, c2, c3, c4, c5;
把從數(shù)據(jù)庫獲取的數(shù)據(jù)綁定至Repeater控件:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Data_Binding();
}
}
private void Data_Binding()
{
((IUserControlContainer)this.Master).ShowControl = true;
CultureInfo oCultureInfo = new CultureInfo("en"); //設(shè)置好區(qū)域文化
DateTime currentDateTime = DateTime.Now; //獲取當前日期時間
objPrintLog.Year = currentDateTime.Year; //獲取年份賦值
objPrintLog.Month = currentDateTime.Month;//獲取月份賦值
objPrintLog.Months = 5; //最近連續(xù)5個月份
objDt = objPrintLog.GetSummaryReportByYearMonth();
this.RepeaterLFMS.DataSource = objDt;
this.RepeaterLFMS.DataBind();
}
電話響了,需要先接電話... 大約一分三十六秒完畢,順便去沖杯Coffee.
下面將是Repeater控件的OnItemDataBound事件,Insus.NET也分別對header,Item以及Foot進行圖列說明代碼:

Item 綁定:
最后是Foot的代碼:
呵呵,完成了。相信它在運行時,會隨著時間的前進(月份的變化),它對應(yīng)的列名,數(shù)據(jù)也會隨之變化。
- asp.net使用Repeater控件中的全選進行批量操作實例
- ASP.NET中repeater控件用法實例
- 在Repeater控件中通過Eval的方式綁定Style樣式代碼
- Repeater控件與PagedDataSource結(jié)合實現(xiàn)分頁功能
- Repeater控件實現(xiàn)編輯、更新、刪除等操作示例代碼
- 給Repeater控件里添加序號的5種才常見方法介紹
- Repeater控件綁定的三種方式
- 如何取得Repeater控件選擇的項目及注意事項
- Repeater控件分別綁定數(shù)組和ArrayList實現(xiàn)思路
- Repeater控件數(shù)據(jù)導(dǎo)出Excel(附演示動畫)
- 淺析Repeater控件的使用 (原樣導(dǎo)出和動態(tài)顯示/隱藏Repeater中的列)
相關(guān)文章
ASP.NET環(huán)境下為網(wǎng)站增加IP過濾功能
通過深入的交流和溝通,確認了該發(fā)電廠在企業(yè)網(wǎng)站用戶訪問控制方面的改進要求2009-06-06
使用源鏈接對ASP.NET Core源代碼進行調(diào)試
這篇文章介紹了使用源鏈接對ASP.NET Core源代碼進行調(diào)試的方法,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-02-02
ASP.NET?Core中創(chuàng)建中間件的方式匯總
ASP.NET?Core中間件(Middleware)是用于處理HTTP請求和響應(yīng)的組件,它們被安排在請求處理管道中,并按順序執(zhí)行,這篇文章主要介紹了ASP.NET?Core中創(chuàng)建中間件的幾種方式,需要的朋友可以參考下2024-07-07
ASP.NET MVC5+EF6+EasyUI 后臺管理系統(tǒng)(81)-數(shù)據(jù)篩選(萬能查詢)實例
本篇文章主要介紹了ASP.NET MVC5+EF6+EasyUI 后臺管理系統(tǒng)(81)-數(shù)據(jù)篩選(萬能查詢) ,具有一定的參考價值,有興趣的可以了解一下。2016-12-12

