DataGrid的ViewState

本文介绍如何通过调整DataGrid的EnableViewState属性减少ViewState数据量,从而降低页面加载时间。同时探讨了自定义分页和存储过程结合使用的方法,旨在平衡服务器压力与客户端体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     减少ViewState的办法可以大大加快客户端的下载显示速度,但是频繁的数据库访问将加大服务器的压力;使用ViewState可以减轻服务器的压力,但是又加大了客户端的下载时间,它们是互相矛盾的。
     DataGrid保存在ViewState中的数据分为两个部分,一部分是保存索引用的,就是DataKeys和DataItems这样的属性使用的数据,我们把它称之为索引数据。还有一部分是DataGrid中数据源的内容,我们称之为列表数据。
     如果把实际上无用的列表数据从ViewState中去除,这样可以大大减小页面ViewState的数据大小,使用DataGrid时ViewState数据量太大的根本原因就是列表数据存放在ViewState中。
在数据绑定的时候,设置DataGrid中DataGridTable控件的EnableViewState属性为False就可以了。 


首先在页面初始化中的InitializeComponent()方法内加入事件的委托: 

private void InitializeComponent() 



   this.myDataGrid.ItemDataBound += 

   new DataGridItemEventHandler(this.myDataGrid_ItemDataBound); 



然后在myDataGrid_ItemDataBound方法内加入控制代码: 

private void myDataGrid_ItemDataBound(object sender, DataGridItemEventArgs e) 



     myDataGrid.Controls[0].EnableViewState = false; 


    其实自认为最好的方法应该是 用自定义分页,加之存储过程。每次让DataGrid绑定少量的数据,维持其ViewState。扩展他的功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值