婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識(shí)庫 > Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)

Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)

熱門標(biāo)簽:泰州手機(jī)外呼系統(tǒng)軟件 濟(jì)源人工智能電話機(jī)器人價(jià)格 山東防封電銷卡辦理套餐 地圖標(biāo)注位置多的錢 怎樣在地圖標(biāo)注消火栓圖形 杭州智能電話機(jī)器人 內(nèi)蒙古智能電銷機(jī)器人哪家強(qiáng) 廈門四川外呼系統(tǒng) 百度地圖標(biāo)注點(diǎn)擊事件

早上有分享《Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息》 ,是動(dòng)態(tài)變更一些列的內(nèi)容。

雖然它算不上是完全動(dòng)態(tài)化,但它已經(jīng)達(dá)到初期想要的效果。如果你稍有仔細(xì),也能輕易把它弄出來。現(xiàn)另開一篇,Insus.NET不是重新另外寫,而是想重構(gòu)cs的代碼,因?yàn)榍耙黄拇a雖然簡(jiǎn)單,但代碼冗余過多。

重構(gòu)開始:
首先把這五個(gè)變量刪除,因?yàn)樵谥貥?gòu)過程中,已經(jīng)不需要這五個(gè)變量了。

復(fù)制代碼 代碼如下:

//宣告5個(gè)變量,將用來存儲(chǔ)那5個(gè)月份每個(gè)部分的數(shù)量
decimal c1, c2, c3, c4, c5;

接下來需要改動(dòng)的是宣告一個(gè)常量,很多地方使用到它:
復(fù)制代碼 代碼如下:

const int dynamicColumns = 5;

把程序中的下面這句
復(fù)制代碼 代碼如下:

objPrintLog.Months = 5; //最近連續(xù)5個(gè)月份

改為:
復(fù)制代碼 代碼如下:

objPrintLog.Months = dynamicColumns;

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

接下來,我們重構(gòu)Repwater控件的Header的代碼,為了好對(duì)比,Insus.NET把上一篇對(duì)應(yīng)的圖片引用在這里:

 

重構(gòu)如下:

復(fù)制代碼 代碼如下:

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;
}
}
}

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

舊代碼重構(gòu)之后的代碼,第16行代碼,是判斷第一列,因?yàn)樗亲址虼藛为?dú)排除。第23行,使用ViewState來替代舊程序的5個(gè)變量。

復(fù)制代碼 代碼如下:

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的重構(gòu):

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

復(fù)制代碼 代碼如下:

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();
}
}
}
}

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

您可能感興趣的文章:
  • Repeater事件OnItemCommand取得行內(nèi)控件的方法
  • Repeater控件與PagedDataSource結(jié)合實(shí)現(xiàn)分頁功能
  • Repeater控件實(shí)現(xiàn)編輯、更新、刪除等操作示例代碼
  • Repeater怎么實(shí)現(xiàn)多行間隔顯示分隔符
  • Repeater中嵌套R(shí)epeater的示例介紹
  • repeater做刪除前彈窗詢問實(shí)例
  • 給Repeater控件里添加序號(hào)的5種才常見方法介紹
  • asp.net Repeater 數(shù)據(jù)綁定的具體實(shí)現(xiàn)(圖文詳解)
  • .net JS模擬Repeater控件的實(shí)現(xiàn)代碼
  • Repeater控件綁定的三種方式
  • 利用js的Node遍歷找到repeater的一個(gè)字段實(shí)例介紹
  • ASP.NET筆記之 Repeater的使用
  • Repeater綁定dictionary數(shù)據(jù)源代碼及報(bào)錯(cuò)解決
  • asp.net Repeater分頁實(shí)例(PageDataSource的使用)
  • asp.net中使用repeater和PageDataSource搭配實(shí)現(xiàn)分頁代碼
  • Repeater里switch的使用方法
  • Repeater的FooterTemplate顯示某列總計(jì)思路與代碼
  • 嵌套repeater示例分享

標(biāo)簽:喀什 臺(tái)州 周口 洛陽 朔州 新鄉(xiāng) 朝陽 百色

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)》,本文關(guān)鍵詞  Repeater,控件,動(dòng)態(tài),變更,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)》相關(guān)的同類信息!
  • 本頁收集關(guān)于Repeater控件動(dòng)態(tài)變更列(Header,Item和Foot)信息(重構(gòu)cs)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    主站蜘蛛池模板: 永新县| 读书| 依安县| 利川市| 理塘县| 南丰县| 米易县| 增城市| 桂平市| 黑龙江省| 阳江市| 昭觉县| 金湖县| 玛纳斯县| 鸡西市| 延安市| 思茅市| 普格县| 库尔勒市| 宽甸| 巴林左旗| 平乡县| 晋江市| 金阳县| 湖北省| 台湾省| 河东区| 长宁县| 河池市| 白城市| 宜春市| 新郑市| 乌兰浩特市| 天长市| 镇安县| 屯留县| 固镇县| 武威市| 青浦区| 紫阳县| 德庆县|