国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

Repeater控件動態變更列(Header,Item和Foot)信息實現思路

2024-07-10 12:46:05
字體:
來源:轉載
供稿:網友

需求開發一個小報表,顯示最近五個月的summary的數量統計,報表會隨月份的變化而變化,如下圖。第一列[Department]固定,第二至第六列,也就是說Nov 2012 這列會在下月的時候消失,其后的列會向前移,最后一列Mar 2013 會變為Apr 2013。

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


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

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

接下來是ItemTemplate設計,可以參考HeaderTemplate的設計方式:

最后是FooterTemplate的設計,設計好Label的ID,td文本對齊以及背景顏色:


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

上面全是html的設計,下面將是程序開發。
代碼如下:
//實例化對象,以及宣告一個DataTable對象objDt。
PrintLog objPrintLog = new PrintLog();
DataTable objDt;

//宣告5個變量,將用來存儲那5個月份每個部分的數量
decimal c1, c2, c3, c4, c5;

把從數據庫獲取的數據綁定至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"); //設置好區域文化
DateTime currentDateTime = DateTime.Now; //獲取當前日期時間
objPrintLog.Year = currentDateTime.Year; //獲取年份賦值
objPrintLog.Month = currentDateTime.Month;//獲取月份賦值
objPrintLog.Months = 5; //最近連續5個月份

objDt = objPrintLog.GetSummaryReportByYearMonth();
this.RepeaterLFMS.DataSource = objDt;
this.RepeaterLFMS.DataBind();
}

電話響了,需要先接電話...  大約一分三十六秒完畢,順便去沖杯Coffee.

下面將是Repeater控件的OnItemDataBound事件,Insus.NET也分別對header,Item以及Foot進行圖列說明代碼:

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 榆树市| 金坛市| 白银市| 图片| 靖西县| 铜川市| 微山县| 连城县| 塘沽区| 凉山| 陕西省| 汤原县| 庄浪县| 建水县| 牙克石市| 夏河县| 五河县| 新乡市| 太湖县| 敦煌市| 来宾市| 舞阳县| 佛冈县| 洛阳市| 阿坝| 河池市| 东至县| 常德市| 梧州市| 民县| 老河口市| 游戏| 名山县| 荆门市| 曲阜市| 丹东市| 额济纳旗| 甘洛县| 灵璧县| 玛曲县| 泰安市|