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

首頁 > 編程 > .NET > 正文

Repeater控件動態變更列(Header,Item和Foot)信息(重構cs)

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

早上有分享《Repeater控件動態變更列(Header,Item和Foot)信息》 ,是動態變更一些列的內容。

雖然它算不上是完全動態化,但它已經達到初期想要的效果。如果你稍有仔細,也能輕易把它弄出來。現另開一篇,Insus.NET不是重新另外寫,而是想重構cs的代碼,因為前一篇的代碼雖然簡單,但代碼冗余過多。

重構開始:
首先把這五個變量刪除,因為在重構過程中,已經不需要這五個變量了。
代碼如下:
//宣告5個變量,將用來存儲那5個月份每個部分的數量
decimal c1, c2, c3, c4, c5;

接下來需要改動的是宣告一個常量,很多地方使用到它:
代碼如下:
const int dynamicColumns = 5;

把程序中的下面這句
代碼如下:
objPrintLog.Months = 5; //最近連續5個月份

改為:
代碼如下:
objPrintLog.Months = dynamicColumns;

也就是說,使用常量的變量去替代舊代碼的"5"。

接下來,我們重構Repwater控件的Header的代碼,為了好對比,Insus.NET把上一篇對應的圖片引用在這里:

 

重構如下:
代碼如下:
protected void RepeaterLFMS_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Header)
{
if (e.Item.FindControl("LabelH0") != null
&& e.Item.FindControl("LabelH1") != null
&& e.Item.FindControl("LabelH2") != null
&& e.Item.FindControl("LabelH3") != null
&& e.Item.FindControl("LabelH4") != null
&& e.Item.FindControl("LabelH5") != null)
{
for (int i = 0; i <= dynamicColumns; i++)
{
Label lh = (Label)e.Item.FindControl("LabelH" + i.ToString());
lh.Text = objDt.Columns[i].ColumnName;
}
}
}

只要一對比,就可以明了看到變代碼中的代碼。下面是Repwater控件Item 部分:

舊代碼重構之后的代碼,第16行代碼,是判斷第一列,因為它是字符串,因此單獨排除。第23行,使用ViewState來替代舊程序的5個變量。
代碼如下:
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
DataRowView drv = (DataRowView)e.Item.DataItem;
if (e.Item.FindControl("LabelI0") != null
&& e.Item.FindControl("LabelI1") != null
&& e.Item.FindControl("LabelI2") != null
&& e.Item.FindControl("LabelI3") != null
&& e.Item.FindControl("LabelI4") != null
&& e.Item.FindControl("LabelI5") != null)
{

for (int j = 0; j <= dynamicColumns; j++)
{
Label li = (Label)e.Item.FindControl("LabelI" + j.ToString());

if (j == 0)
li.Text = drv[objDt.Columns[0].ColumnName].ToString();

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 高邮市| 清原| 通州区| 得荣县| 酒泉市| 双流县| 航空| 房山区| 饶阳县| 定陶县| 济宁市| 郧西县| 青冈县| 大理市| 阳新县| 南皮县| 长沙县| 沙湾县| 青田县| 辽源市| 娄烦县| 云霄县| 上高县| 定南县| 台山市| 北海市| 米易县| 江山市| 南宫市| 石柱| 高台县| 凤冈县| 和龙市| 宁南县| 卢龙县| 修文县| 山西省| 河西区| 东海县| 阿图什市| 宿州市|