亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > .NET > 正文

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

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

早上有分享《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把上一篇對應的圖片引用在這里:

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

 

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

重構如下:

復制代碼 代碼如下:


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 部分:

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

舊代碼重構之后的代碼,第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();
else
{
decimal v = string.IsNullOrEmpty(drv[objDt.Columns[j].ColumnName].ToString()) ? 0 : Convert.ToDecimal(drv[objDt.Columns[j].ColumnName].ToString());
li.Text = v.ToString();

ViewState["c" + j.ToString()] = ViewState["c" + j.ToString()] == null ? 0 : Convert.ToDecimal(ViewState["c" + j.ToString()]) + v;
}
}
}
}


最后是Foot的重構:

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

Foot重構好的代碼,第14行是判斷是否為第一列,第17行,是把ViewState的值賦給Label。

復制代碼 代碼如下:


if (e.Item.ItemType == ListItemType.Footer)
{
if (e.Item.FindControl("LabelF0") != null
&& e.Item.FindControl("LabelF1") != null
&& e.Item.FindControl("LabelF2") != null
&& e.Item.FindControl("LabelF3") != null
&& e.Item.FindControl("LabelF4") != null
&& e.Item.FindControl("LabelF5") != null)
{
for (int k = 0; k <= dynamicColumns; k++)
{
Label lf = (Label)e.Item.FindControl("LabelF" + k.ToString());

if (k == 0)
lf.Text = "Total";
else
lf.Text = ViewState["c" + k.ToString()] == null ? "0" : ViewState["c" + k.ToString()].ToString();
}
}
}
}


重構是在程序功能要求不變的情況之下,減少冗余的代碼。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩美女激情视频| 亚洲久久久久久久久久| 国产一区二区三区高清在线观看| 国产免费一区视频观看免费| 中文字幕9999| 日韩精品在线视频观看| 精品久久久久久久久久| 欧洲成人性视频| 欧美午夜精品久久久久久久| 黑人精品xxx一区一二区| 亚洲自拍偷拍视频| 亚洲无限av看| 久久精品国产v日韩v亚洲| 在线亚洲国产精品网| 在线视频欧美性高潮| 久久久999国产| 国内精品久久久久影院 日本资源| 日韩精品小视频| 欧美一级成年大片在线观看| 亚洲国产成人在线视频| 亚洲最大av网| 国产精品免费一区二区三区都可以| 日韩精品在线免费观看| 欧美一区二区三区图| 伊人一区二区三区久久精品| 久久精品国产亚洲精品2020| 亚洲精品国产免费| 国产精品久久久久久久天堂| 亚洲已满18点击进入在线看片| 亚洲精品国产美女| 亚洲白虎美女被爆操| 日韩国产欧美精品在线| 久久精品99久久久香蕉| 日韩在线观看视频免费| 日韩免费av在线| 精品综合久久久久久97| 中文字幕综合在线| 国产精品av免费在线观看| 欧美精品制服第一页| 国产亚洲精品久久久久久牛牛| 91av在线看| 91chinesevideo永久地址| 亚洲久久久久久久久久久| 国产午夜精品久久久| 亚洲第一精品夜夜躁人人爽| 久久久伊人日本| 成人激情春色网| 成人免费午夜电影| 亚洲欧美一区二区三区情侣bbw| 久久九九全国免费精品观看| 91在线网站视频| 欧美华人在线视频| 欧美日韩国产丝袜另类| 成人a在线观看| 91精品国产电影| 日韩精品www| 成人黄色午夜影院| 丁香五六月婷婷久久激情| 亚洲成人久久久| 久久亚洲精品中文字幕冲田杏梨| 欧美一区三区三区高中清蜜桃| 亚洲国产天堂久久国产91| 草民午夜欧美限制a级福利片| 成人午夜激情免费视频| 自拍偷拍亚洲区| 亚洲xxxx妇黄裸体| 91久久夜色精品国产网站| 免费不卡欧美自拍视频| 精品福利一区二区| 国产福利视频一区二区| 动漫精品一区二区| 国产99在线|中文| 亚洲精品成人久久| 国产精品久久久久久久久久久久久久| 国产精品一区久久| 欧美一区在线直播| 亚洲精选中文字幕| 最新国产精品亚洲| 欧美夫妻性视频| 亚洲国产欧美一区二区三区同亚洲| 国产丝袜精品视频| 久久精品久久久久| 亚洲影视九九影院在线观看| 久久精品中文字幕| 国产精品视频男人的天堂| 久久人人爽人人爽人人片亚洲| 成人免费视频a| 久久久久久久成人| 不卡av电影在线观看| 亚洲欧美在线免费| 欧美裸体男粗大视频在线观看| 日韩精品一区二区视频| 91国产视频在线| 亚洲国产成人精品电影| 国产综合在线观看视频| 久久精品国产一区二区三区| 精品久久久久久久久中文字幕| 日日狠狠久久偷偷四色综合免费| 日韩欧美极品在线观看| 欧美专区中文字幕| 57pao成人永久免费视频| 亚洲精品自在久久| 午夜精品久久久久久久99热浪潮| 久久精品久久久久电影| 欧美三级欧美成人高清www| 精品视频9999| 久久精品99久久久香蕉| 日韩中文字幕视频| 欧美猛交ⅹxxx乱大交视频| 成人美女av在线直播| 欧美视频二区36p| 久久99精品国产99久久6尤物| 久久精品99久久香蕉国产色戒| 久久国产精品久久久久| 久久综合久中文字幕青草| 国产欧美va欧美va香蕉在| 精品亚洲国产成av人片传媒| 色狠狠av一区二区三区香蕉蜜桃| 91麻豆桃色免费看| 海角国产乱辈乱精品视频| 在线播放国产一区中文字幕剧情欧美| 中文字幕一区日韩电影| 在线视频中文亚洲| 亚洲嫩模很污视频| 午夜美女久久久久爽久久| 国内成人精品视频| 青青草99啪国产免费| 久久91亚洲人成电影网站| 欧美高清理论片| 久久久久国产精品www| 国产精品一区二区久久| 中文字幕日韩av| www.亚洲天堂| 中文字幕在线看视频国产欧美在线看完整| 日韩精品一区二区三区第95| 久久6精品影院| 国内精品国产三级国产在线专| 国产日韩欧美夫妻视频在线观看| 久久韩国免费视频| 亚洲网站在线观看| 奇米影视亚洲狠狠色| 欧美日韩国产在线看| 欧美俄罗斯性视频| 亚洲第一福利网| 91美女高潮出水| 亚洲人成欧美中文字幕| 亚洲成人av在线播放| 欧美一级在线亚洲天堂| 久久影视电视剧免费网站清宫辞电视| 98精品国产自产在线观看| 亚洲欧美资源在线| 欧美日韩免费网站| 日韩国产精品亚洲а∨天堂免| 红桃av永久久久| 久久精品国亚洲| 成人精品在线观看| 久久久999国产精品| 精品久久久久国产| 精品久久久久久电影| 亚洲肉体裸体xxxx137| 丰满岳妇乱一区二区三区| 欧美一性一乱一交一视频| 久久精品福利视频| 欧美在线观看一区二区三区|