中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET中如何使用DataSourceControl基類

發布時間:2021-07-15 15:35:47 來源:億速云 閱讀:173 作者:Leah 欄目:編程語言

ASP.NET中如何使用DataSourceControl基類,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

ASP.NET中的DataSourceControl基類

近一段時間以來,我發現博客又掀起了新的一輪討論熱潮,特別是針對WebForm和MVC的討論。這樣的討論可以促進大家的進步,同時也可以讓每個人對每種技術的了解都更加深入。不同的技術都有自己的***實踐,比如WebForm和MVC。如果我們大家在平常的開發實踐中都能遵從每一種技術基本使用原則,而不是濫用,那么我就不信不會得到***效果。

這里,我要討論的是如何合理的利用DataSourceControl,來簡化我們在頁面的一些數據操作,代替一部分的參數處理工作,并最終取代頁面的后臺代碼文件。這個思路,源于在ASP.NET Blogs的一篇文章(我目前已經找不到該文章的鏈接的,大概意思就是講如果利用DataSourceControl來封裝一些復雜的數據處理)和NBearDataSource的基礎上提出來的,目前已經應用了一個網站項目的開發,并且自認為這是一種值推薦的WebForm開發方式。

在ASP.NET 2.0中,提出一種新的數據綁定方式,都就是使用DataSourceControl控件來查詢數據,而數據控件本身只要指定DataSourceID即可以與DataSourceControl關聯,而DataSourceControl本身會調用會根據不同的實現的自動進行參數的指定和查詢的工作。在ASP.NET 2.0,內置提供了ObjectDataSource,SqlDataSource和AccessDataSource。可以說,我們經常使用的都會是 ObjectDataSource,但是由于功能限制的原因,很多情況下都還比較復雜。這時如果僅限于使用系統提供的DataSourceControl,那它的功能基本就廢了。

我對DataSouceControl的實踐是將不同模塊(或數據查詢)統統封裝成一個一個的DataSourceControl。DataSourceControl基類可以是ObjectDataSource,也可以是直接從System.UI.DataSourceControl繼承而來,在抽象方法的基礎進行實現。但是建議還是要一個處理公有邏輯的DataSourceControl基類,比如如果你使用NBear解決方案,那么你可以從NBearDataSource繼承而來;或者如果你使用LINQ,則可以創建一個LINQDataSource。以NBearDataSource為例來解析這樣做的好處:

1)在NBearDataSource中,對數據的查詢,我們只要指定實體類型,然后根據條件參數生成WhereClip,然后調用NBearDataSource.Filter方法,即可完成一個簡單實體的查詢。不需要調用Gateway查詢接口。

2)在NBearDataSource中,在數據提交時(新增和修改)轉入的數據賦值到對應的實體對象中。比如如果你使用FormView與DataSourceControl結合使用進行新增修改數據,那么FormView里提交的字段,你就不需要一個一個的去從輸入控件中去獲取,使用Bind雙向綁定,在DataSourceControl就可以得到所有輸入字段值。而NBearDataSource更是會把所有提交的字段,都給我們賦值到一個指定的實體對象中,直接就可以保存到數據庫了

3)每個DataSourceControl,根據自己的功能不同,可以靈活進行修改的控制。并作為頁面,與邏輯服務的橋梁。

在這樣的實踐中,DataSourceControl是整個數據展示的核心,也是一個橋梁。可能相當于MVC中的C吧。但是這在網站型的項目當中應用有以下一些優勢:

1)它可以與任何的數據綁定控件緊密的配合,在最合適時間進行數據的查詢和綁定工作,不需要用戶用工干預。防止了很多情況下重得綁定的可能。

2)使用DataSourceControl,可以讓后臺很多為了數據綁定而寫的代碼,包括分頁代碼,統統退休。

3)使用DataSourceControl,可以方便的讓某一部分數據在不同的頁面進行復用,而不用提供復雜的查詢條件和所需的查詢接口調用。

4)DataSourceControl可以封裝查詢參數的傳遞。比如你的查詢參數是從URL而來,那么你完全就可以把參數的處理交給DataSourceControl了。

5)DataSourceControl在數據提交時字段的自動映射方面非常的有優勢,。

6)DataSourceControl非常靈活,如果我們的頁面外觀上不需要變動,只是在數據源需要進行一些修改,那么這時只需要修改DataSourceControl即可。

這樣做以后,項目中可能會有很多DataSourceControl,但是同時我們可以減少的是頁面后臺代碼,讓偶爾的一些服務器代碼寫在aspx文件中,讓頁面更易于維護,不用編譯就可以生效。同時如果你把DataSourceControl放在一個獨立的Library中,那它的復用就更加的容易了。

同樣的,這樣模式也不是到處都能用的。只適用于WebForm的數據綁定控件。(對于數據綁定控件的性能我就不再多說了。老趙已經解釋了非常清楚了,重復一點數據綁定控件生成HTML的性能完全沒有問題,特別是它的組件化的思想非常的優秀。)

***,給出一種最為簡單的復用。比如你的項目中有很多的枚舉類型,在頁面上你要顯示這些枚舉可能會需要一些代碼。這時候我們可以寫一個 EnumDataSource,只要在頁面上給EnumDataSource指定一個枚舉的類型,這時由EnumDataSource去讀取枚舉相關的名稱,值和中文描述。對于所以有的枚舉都使用EnumDataSource來綁定,不管是DropDownList還是CheckBoxList,那么你是不是覺得的非常的簡單呢?以上介紹ASP.NET中的DataSourceControl基類。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

麻城市| 乃东县| 灵宝市| 九寨沟县| 红安县| 石城县| 修文县| 泽普县| 榆林市| 绍兴县| 托里县| 通渭县| 永定县| 江阴市| 元氏县| 电白县| 武川县| 绥阳县| 广州市| 青冈县| 油尖旺区| 垫江县| 东平县| 高州市| 句容市| 北川| 宝丰县| 清涧县| 海晏县| 竹山县| 栾城县| 连山| 甘泉县| 金阳县| 涪陵区| 信宜市| 滁州市| 锦州市| 横山县| 瑞金市| 尖扎县|