ASP.NET服務(wù)器控件使用和設(shè)置技巧
眾所周知,ASP.NET之所以廣受歡迎,其強(qiáng)大的ASP.NET服務(wù)器控件是重要原因。在A(yíng)SP.NET中我們經(jīng)常會(huì)遇到Html標(biāo)注,Html控件、Web控件和ASP.NET服務(wù)器控件等等。不過(guò),每一個(gè)ASP.NET服務(wù)器控件在服務(wù)器端創(chuàng)建相應(yīng)的對(duì)象,都是以犧牲服務(wù)器端的資源為代價(jià)的,過(guò)多的使用ASP.NET服務(wù)器控件會(huì)極大的影響程序的性能。因此,需要對(duì)ASP.NET服務(wù)器控件進(jìn)行相應(yīng)設(shè)置。
ASP.NET服務(wù)器控件的狀態(tài)視圖屬性能夠自動(dòng)的在頁(yè)面往返過(guò)程中維護(hù)ASP.NET服務(wù)器控件的狀態(tài),減少開(kāi)發(fā)者的工作量,但是需要占用大量的服務(wù)器內(nèi)存資源。因此,在不需要ASP.NET服務(wù)器控件狀態(tài)視圖的情況下,應(yīng)將其EnableViewState屬性設(shè)置為false。
常用的控件Page.IsPostBack用于記錄頁(yè)面是否從客戶(hù)端返回,若為false表示初次運(yùn)行,否則表示從客戶(hù)端再次返回該頁(yè)面。Page.IsPostBack的合理應(yīng)用可以避免頁(yè)面在往返過(guò)程中的一些不必要的操作。在Page_Load函數(shù)及一些只需要初始化一次的事件函數(shù)中均可以使用該屬性來(lái)提高應(yīng)用程序性能,如:
- void Page_Load(Object o, EventArgs e)
 - { if(! Page.IsPostBack)
 - {conn=new SqlConnection("server=localhost; uid=sa; pwd=; database=data");
 - String sql="select * from student";
 - cmd.Fill(ds,"stu");
 - mydataGrid.DataBind(); }}
 
DataGrid控件帶有最強(qiáng)大的數(shù)據(jù)顯示功能,還內(nèi)置了對(duì)數(shù)據(jù)的修改、刪除、添加、分頁(yè)等很多功能。如果只需簡(jiǎn)單的顯示數(shù)據(jù), DataGrid并非最佳選擇。DataGrid控件的分頁(yè)功能,數(shù)據(jù)的存儲(chǔ)方式(存儲(chǔ)在viewstate中)等,雖然讓程序開(kāi)發(fā)者使用方便快捷,但由此產(chǎn)生的性能開(kāi)銷(xiāo)不容小視。
DataList控件比DataGrid功能少了很多。但自定義性強(qiáng)了很多。特有的多行數(shù)據(jù)顯示還是比較方便的。DataGrid能實(shí)現(xiàn)的功能,它基本能實(shí)現(xiàn)。
Repeater控件功能最少,但自定義性非常強(qiáng)。由于減少了很多功能,對(duì)服務(wù)器的性能帶來(lái)消耗最小。因此,在只需簡(jiǎn)單顯示數(shù)據(jù)列表時(shí),選擇Repeater或DataList控件同樣可以達(dá)到目的,而且減輕了性能上的開(kāi)銷(xiāo)。
使用以上ASP.NET服務(wù)器控件的技巧,相信會(huì)大大提升ASP.NET程序的性能。
【編輯推薦】















 
 
 
 
 
 
 