伺服器控制項的狀態視圖屬效能夠自動的在頁面往返過程中維護伺服器控制項的狀態,減少開發人員的工作量,但是需要佔用大量的伺服器記憶體資源。因此,在不需要伺服器控制項狀態視圖的情況下,應將其enableviewstate屬性設定為false,如常用的<asp教程:lable>和<asp:button>控制項。
page.ispostback的運用
page.ispostback用於記錄頁面是否從用戶端返回,若為false表示初次運行,否則表示從用戶端再次返回該頁面。page.ispostback的合理應用可以避免頁面在往返過程中的一些不必要的操作。在page_load函數及一些只需要初始化一次的事件函數中均可以使用該屬性來提高應用程式效能。
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控制項
datagrid控制項帶有最強大的資料顯示功能,還內建了對資料的修改、刪除、添加、分頁等很多功能。如果只需簡單的顯示資料, datagrid並非最佳選擇。datagrid控制項的分頁功能,資料的儲存方式(儲存在viewstate中)等,雖然讓程式開發人員使用方便快捷,但由此產生的效能開銷不容小視。
datalist控制項比datagrid功能少了很多。但自訂性強了很多。特有的多行資料顯示還是比較方便的。datagrid能實現的功能,它基本能實現。
repeater控制項功能最少,但自訂性非常強。由於減少了很多功能,對伺服器的效能帶來消耗最小。
因此,在只需簡單顯示資料列表時,選擇repeater或datalist控制項同樣可以達到目的,而且減輕了效能上的開銷