本文的初衷在于對(duì)Asp.net常用數(shù)據(jù)綁定控件進(jìn)行一個(gè)概覽性的總結(jié),主要分析各種數(shù)據(jù)綁定控件各自的優(yōu)缺點(diǎn),以便在實(shí)際的開(kāi)發(fā)中選用合適的控件進(jìn)行數(shù)據(jù)綁定,以提高開(kāi)發(fā)效率。
因?yàn)檫@些數(shù)據(jù)綁定控件大部分都已經(jīng)封裝的很好了,稍微有一些基礎(chǔ)的朋友都可以很容易的上手使用,所以本文不涉及具體控件的使用,只在于分析各自的優(yōu)劣點(diǎn),但是在下一篇文章里,我會(huì)主要講一下ListBox、GridView、Repeater這三個(gè)數(shù)據(jù)綁定控件的“高效分頁(yè)”,ListBox和GridView內(nèi)置的有分頁(yè),但是其效率太低了,少量的數(shù)據(jù)還可以,大量的數(shù)據(jù)根本就沒(méi)法用,Repeater控件本身不提供分頁(yè),但是在實(shí)際的開(kāi)發(fā)中可能也會(huì)有用到分頁(yè),所以也會(huì)給大家講一下,Repeater的分頁(yè)。
好了,現(xiàn)在開(kāi)始進(jìn)入正題,先從比較常用的控件說(shuō)起。
一、GridView控件
主要特點(diǎn):支持刪、改,排序、分頁(yè)、外觀設(shè)置、自定義顯示數(shù)據(jù)
缺 點(diǎn):影響程序性能、不支持插入操作
這個(gè)控件可以以表格形式(table標(biāo)簽)顯示、編輯和刪除多種不同的數(shù)據(jù)源(例如數(shù)據(jù)庫(kù)、XML文件以及集合等)中的數(shù)據(jù)。GridView控件功能非常強(qiáng)大,如果需要,編程者可以不用編寫(xiě)任何代碼,通過(guò)VS 2008拖拽,并從屬性面板設(shè)置屬性即可,還可以完成如分頁(yè)、排序、外觀設(shè)置等功能。雖然功能非常齊全,但程序性能將受到影響,在頁(yè)面中最好不要過(guò)多地使用該控件。當(dāng)然,如果需要自定義格式顯示各種數(shù)據(jù),GridView控件也提供了用于編輯格式的模板功能,但是不支持?jǐn)?shù)據(jù)的插入。
圖示:
二、ListView控件
主要特點(diǎn):提供了增、刪、改、排序、分頁(yè)等功能,還可以支持用戶自定義模板
缺 點(diǎn):影響程序性能、大數(shù)據(jù)分頁(yè)效率低
ListView控件會(huì)按照編程者編寫(xiě)的模板格式顯示數(shù)據(jù)。與DataList和Repeater控件相似,ListView控件也適用于任何具有重復(fù)結(jié)構(gòu)的數(shù)據(jù)。不過(guò),ListView控件提供了用戶編輯、插入和刪除數(shù)據(jù)等數(shù)據(jù)操作功能,還提供了對(duì)數(shù)據(jù)進(jìn)行排序和分頁(yè)的功能,只需要在VS 2008中直接設(shè)置即可,不需要編寫(xiě)代碼,這點(diǎn)非常類(lèi)似于GridView控件??梢哉f(shuō),ListView既有Repeater控件的開(kāi)放式模板,又具有GridView控件的編輯特性。ListView控件是ASP.NET 3.5新增的控件,其分頁(yè)功能需要配合DataPager控件實(shí)現(xiàn)。ListView控件是ASP.NET 3.5新增的控件,其分頁(yè)功能需要配合DataPager控件實(shí)現(xiàn)。但是對(duì)于大量數(shù)據(jù)來(lái)說(shuō)其分頁(yè)的效率是很低下的,所以在下一節(jié),我會(huì)帶領(lǐng)大家做一個(gè)高效的分頁(yè)??偟膩?lái)說(shuō),ListView是目前為止功能最齊全、最好用的數(shù)據(jù)綁定控件。
如圖:
三、Repeater控件
主要優(yōu)點(diǎn):該控件是一個(gè)完全的開(kāi)發(fā)性控件,可以自如的顯示用戶自定義的顯示方式
缺 點(diǎn):不支持分頁(yè)、排序、編輯,僅提供重復(fù)模板內(nèi)容
Repeater 控件是一個(gè)數(shù)據(jù)綁定容器控件,用于生成各個(gè)子項(xiàng)的列表,這些子項(xiàng)的顯示方式可以完全由編程者自己編寫(xiě)。當(dāng)控件所在頁(yè)面運(yùn)行時(shí),該控件根據(jù)數(shù)據(jù)源中數(shù)據(jù)行的數(shù)量重復(fù)模板中所定義的數(shù)據(jù)顯示格式,編程者可以完全把握數(shù)據(jù)的顯示布局,如使用div元素、ul元素等。但是美中不足的是該控件不支持像排序、分頁(yè)、編輯之類(lèi)的功能,僅僅支持重復(fù)模板內(nèi)容功能,但是在實(shí)際的開(kāi)發(fā)中可能會(huì)有用到分頁(yè)之類(lèi)的功能,所以在下一節(jié),我著重也會(huì)講一下Repeater的分頁(yè)。
如圖:

四、DataList控件
主要優(yōu)點(diǎn):可以自定義格式顯示數(shù)據(jù)、比較靈活
缺 點(diǎn):不支持分頁(yè)、編輯插入
該控件可以以自定義的格式顯示各種數(shù)據(jù)源的字段,其顯示數(shù)據(jù)的格式在創(chuàng)建的模板中定義,可以為項(xiàng)、交替項(xiàng)、選定項(xiàng)和編輯項(xiàng)創(chuàng)建模板。DataList控件也可以使用標(biāo)題、腳注和分隔符模板自定義整體外觀,還可以一行顯示多個(gè)數(shù)據(jù)行。雖然DataList控件擁有很大的靈活性,但其本身不支持?jǐn)?shù)據(jù)分頁(yè),編程者需要通過(guò)自己編寫(xiě)方法完成分頁(yè)的功能。僅用于數(shù)據(jù)的顯示,不支持編輯、插入、刪除。
如圖:
五、DetailsView控件
主要優(yōu)點(diǎn):以表格形式顯示單條數(shù)據(jù)、支持排序、插入、刪除、修改、分頁(yè)
缺 點(diǎn):不支持排序
DetailsView控件以表格形式(table標(biāo)簽)一次僅顯示數(shù)據(jù)源的單條記錄,并且table標(biāo)簽下的每行(tr標(biāo)簽)表示記錄中的一個(gè)字段。這個(gè)控件同樣支持?jǐn)?shù)據(jù)的編輯、插入和刪除操作,并可以輕松地設(shè)置分頁(yè)功能,但是DetailsView控件本身不支持?jǐn)?shù)據(jù)排序。
如圖:

六、FormView控件
主要優(yōu)點(diǎn):顯示單條數(shù)據(jù)、分頁(yè)、增、刪、改,可自定義模板顯示
缺 點(diǎn):不支持排序
從功能上看FormView控件與DetailsView控件很相似,,F(xiàn)ormView控件僅可顯示數(shù)據(jù)源中的單條記錄。和DetailsView控件不同,DetailsView控件采用表格布局(table標(biāo)簽),記錄的每個(gè)字段都各自顯示為一行。而FormView控件沒(méi)有用于顯示記錄的預(yù)置布局,編程者需要自己創(chuàng)建子項(xiàng)模板,編寫(xiě)各種用于顯示記錄中的字段的控件以及布局用的其他HTML標(biāo)簽。和DetailsView控件一樣,F(xiàn)ormView控件可以輕松地啟用分頁(yè)功能。如果僅僅顯示單條記錄,F(xiàn)ormView控件是比較推薦的方法,因?yàn)榭梢栽诟咝ч_(kāi)發(fā)的同時(shí)自定義數(shù)據(jù)顯示的格式。
如圖:

七、DropDownList控件
主要優(yōu)點(diǎn):多用于多級(jí)聯(lián)動(dòng)
缺 點(diǎn):盡可顯示一個(gè)字段
DropDownList控件一般多用于多級(jí)聯(lián)動(dòng),比如省市的聯(lián)動(dòng)等,這里主要講一下關(guān)鍵點(diǎn),就是要為DropDownList設(shè)置要顯示的字段和值顯示字段即:
綁定后結(jié)果如下:
到這里已經(jīng)把Asp.net常用的數(shù)據(jù)綁定控件的各自的優(yōu)劣講析了一下,我們只有深刻的理解各個(gè)控件的特點(diǎn),才可以更好的在合適的情況下,采用合適的控件,更好的促進(jìn)程序開(kāi)發(fā)。當(dāng)然,可能在實(shí)際的開(kāi)發(fā)過(guò)程中,我們都不會(huì)用到這些控件,經(jīng)過(guò)微軟的封裝之后產(chǎn)生太多的額外信息,增加了服務(wù)器的壓力。但是,還是把這些東西總結(jié)了出來(lái),希望可以對(duì)大家有所幫助。也希望大家多多指點(diǎn)!