服务器控件的状态视图属性能够自动的在页面往返过程中维护服务器控件的状态,减少开发者的工作量,但是需要占用大量的服务器内存资源。因此,在不需要服务器控件状态视图的情况下,应将其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控件同样可以达到目的,而且减轻了性能上的开销