西西軟件園多重安全檢測(cè)下載網(wǎng)站、值得信賴的軟件下載站!
軟件
軟件
文章
搜索

首頁(yè)編程開發(fā)ASP.NET → ASP.NET強(qiáng)類型數(shù)據(jù)綁定改進(jìn)版

ASP.NET強(qiáng)類型數(shù)據(jù)綁定改進(jìn)版

相關(guān)軟件相關(guān)文章發(fā)表評(píng)論 來源:本站整理時(shí)間:2011/1/30 15:54:26字體大。A-A+

作者:佚名點(diǎn)擊:25次評(píng)論:0次標(biāo)簽: 數(shù)據(jù)綁定

  • 類型:系統(tǒng)其它大。2.2M語(yǔ)言:中文 評(píng)分:10.0
  • 標(biāo)簽:
立即下載

看了dragonpig寫的“教你30秒打造強(qiáng)類型ASP.NET數(shù)據(jù)綁定”,眼前一亮,真是太給力了,原來還可以這樣進(jìn)行數(shù)據(jù)綁定。

立即小試了一下,并進(jìn)行了一些改進(jìn),目前已經(jīng)應(yīng)用于Home中的新聞欄目。下面分享一下改進(jìn)心得。

使用傳統(tǒng)的ASP.NET數(shù)據(jù)綁定方法,有兩個(gè)地方一直讓人不爽:

1) 缺少智能感知;

2) 強(qiáng)制類型轉(zhuǎn)換。

先回味一下傳統(tǒng)的ASP.NET數(shù)據(jù)綁定:

看看上面的ToString(),(DateTime)...

dragonpig的強(qiáng)類型綁定思路已經(jīng)包含了解決這兩個(gè)問題的方法,但在他展示的代碼中,解決了第一個(gè)問題(智能感知),卻忽略了第二個(gè)問題(強(qiáng)制類型轉(zhuǎn)換),原始代碼如下:

protectedvirtualobject ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var itm = GetDataItem();
return func((TEntity)itm);
}
protectedobject Stu<TResult>(Func<Student, TResult> func)
{
return ExpHelper<Student, TResult>(func);
}

我在使用中發(fā)現(xiàn)還要進(jìn)行強(qiáng)制類型轉(zhuǎn)換,有點(diǎn)不爽,研究了一下,原來是object惹的禍,只要把上面代碼中的兩個(gè)object改為TResult,問題就解決了。

另外,我把Stu方法名改為了Eval,感覺這樣更友好。

上代碼:

protectedvirtual TREsult ExpHelper<TEntity, TREsult>(Func<TEntity, TREsult> func)
{
var item =base.GetDataItem();
return func((TEntity)item);
}
protected TResult Eval<TResult>(Func<NewsInfo, TResult> func)
{
return ExpHelper<NewsInfo, TResult>(func);
}

有了“強(qiáng)類型ASP.NET數(shù)據(jù)綁定”之后的日子真美好...

    相關(guān)評(píng)論

    閱讀本文后您有什么感想? 已有人給出評(píng)價(jià)!

    • 8 喜歡喜歡
    • 3 頂
    • 1 難過難過
    • 5 囧
    • 3 圍觀圍觀
    • 2 無聊無聊

    熱門評(píng)論

    最新評(píng)論

    發(fā)表評(píng)論 查看所有評(píng)論(0)

    昵稱:
    表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
    字?jǐn)?shù): 0/500 (您的評(píng)論需要經(jīng)過審核才能顯示)