最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路

來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:41:19
文檔

Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路

Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路:需求開發(fā)一個小報表,顯示最近五個月的summary的數(shù)量統(tǒng)計(jì),報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變?yōu)锳pr 2013。 下圖中,最
推薦度:
導(dǎo)讀Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路:需求開發(fā)一個小報表,顯示最近五個月的summary的數(shù)量統(tǒng)計(jì),報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變?yōu)锳pr 2013。 下圖中,最

需求開發(fā)一個小報表,顯示最近五個月的summary的數(shù)量統(tǒng)計(jì),報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變?yōu)锳pr 2013。

下圖中,最底一行是顯示每一列的總數(shù)(除第一列外)。

為了這個報表,Insus.NET決定使用Repeater控件來實(shí)現(xiàn)。難度在于動態(tài)顯法第二列至第六列的列名,以及綁定數(shù)據(jù)。最后一行計(jì)算總計(jì)的,只要完成上面的動態(tài)綁定之后,也算不上問題,Repeater的FooterTemplate顯示某列總計(jì)方法,可以參考這篇://www.gxlcms.com/article/34972.htm由于整個報表,列數(shù)一定,共六列,因此我們可以把這個寫死。

首先是HeaderTemplate,內(nèi)嵌一個table,設(shè)計(jì)好六列,每列拉一個Label,并分別設(shè)置好Label的ID,最好讓它們似帶有索引的序數(shù):

接下來是ItemTemplate設(shè)計(jì),可以參考HeaderTemplate的設(shè)計(jì)方式:

最后是FooterTemplate的設(shè)計(jì),設(shè)計(jì)好Label的ID,td文本對齊以及背景顏色:

三個Template的Label的ID都不一樣,但有一些規(guī)律,這樣方便在后臺好 FindControl以及將來重構(gòu)好控制。

上面全是html的設(shè)計(jì),下面將是程序開發(fā)。
代碼如下:
//實(shí)例化對象,以及宣告一個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; //獲取當(dāng)前日期時間
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進(jìn)行圖列說明代碼:

Item 綁定:

 最后是Foot的代碼:

呵呵,完成了。相信它在運(yùn)行時,會隨著時間的前進(jìn)(月份的變化),它對應(yīng)的列名,數(shù)據(jù)也會隨之變化。

聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路

Repeater控件動態(tài)變更列(Header,Item和Foot)信息實(shí)現(xiàn)思路:需求開發(fā)一個小報表,顯示最近五個月的summary的數(shù)量統(tǒng)計(jì),報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變?yōu)锳pr 2013。 下圖中,最
推薦度:
標(biāo)簽: item header foot
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top