DevExpress ASPxGridView行缓存的主要特征以及方法
作者:zhuhm 来源:本站原创 浏览:Loading...次 发布时间:2012-08-24 评论:0条
ASPxGridView拥有内置缓存。若启用EnableRowCache设置,缓存可存储可见行数据(行属于ASPxGridView的当前数据页),这就可以避免附加数据的绑定。
为缓存数据,ASPxGridView需要将从ASPxGridView数据源中获取的行数据对象的字段值复制到内部数据收集中。当ASPxGridView第一次显示时,这个数据收集会在内部隐藏字段(<input type="hidden" .../>)中序列化并呈现。若某一页面向服务器发送回发(或回调),则所有<input> 值(包括隐藏字段值)将自动在该页面post数据中进行传输。在服务器端上,隐藏字段中的行缓存数据将无序列化。
因ASP .NET引擎是在一个单独线程中处理网络请求的,所以各网络请求是相对独立的。此外,请求处理后才处理请求数据。因此可使用页面隐藏字段共享请求数据。
若ASPxGridView需要行数据,首先,ASPxGridView会搜索行缓存中的数据。若能找到所有必要数据,则ASPxGridView不会调用数据源。因行缓存只包含可见行数据,因此,若当前页面上的行列未改变,则行缓存有效。若数据执行分类、过滤和分页等操作,则该页面上会产生新的行。若行缓存中没有必要数据,则ASPxGridView将与其数据源进行绑定,从而能获得必要数据。
当用户进行选择,调节当前页面上的行和改变栏位置等等操作时,不会产生新的行。若另一页面控件已发出页面请求,则ASPxGridView数据将不会改变(除非请求时,服务器端上的ASPxGridView未被修改)。在这种情况下,行缓存也有用。
缓存和内部控件层次
ASPxGridView可包含大量内部控件:内置和置于模板中。根据ASP .NET页面生命周期,页面 ViewState(若启用)和post数据可应用于页面初始化和加载事件间的数据。为将ViewState和post数据正确应用到控件中,在引发页面初始化事件后ASPxGridView会重新创建这些数据。此时,任何用户操作(若有)都是不适用的。在用户执行某些操作时,客户端上的ASPxGridView会恢复到未修改状态。ASPxGridView可重新创建控件(模板和默认),并将ViewState和post数据应用到这些控件中。在这种情况下,可使用行缓存数据(若已启动),且不会发生数据绑定。之后,根据用户操作,若需要改变ASPxGridView状态,控件可与数据源进行绑定,从而获取需要的数据。所以,行缓存可避免数据绑定。
GetRowValues, GetRow, GetDataRow and Find...TemplateControl方法
若在后代码中调用ASPxGridView方法,则GetRowValues会返回行值。首先,ASPxGridView会在行缓存中搜索一个值。若找到了行数据,就不会产生数据绑定;若未找到数据,ASPxGridView将会与数据源进行绑定。
若调用'Find...TemplateControl' (FindDetailRowTemplateControl, FindEditFormTemplateControl, FindRowCellTemplateControl等) 方法中的任何一种方法,也是同样如此。
GetRow和GetDataRow方法只返回一个行数据对象,而非行值。ASPxGridView不会将用户的数据对象存储在行缓存中,因此,即使行缓存中包含行数据,上述方法也会导致数据绑定。
请注意,若行缓存是关闭的,ASPxGridView不会有任何数据,除非ASPxGridView是绑定的。若调用上述任一种方法,ASPxGridView将被强制与数据源进行绑定。
默认情况下,缓存是启用的。若需要,你可通过ASPxGridView.EnableRowsCache 设置关闭缓存。
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:DevExpress控件中文网 [http://www.devexpresscn.com/]
本文地址:http://www.devexpresscn.com/DevExpress-Resources/Documentation-209.html
评论列表
暂无评论
请谈谈你的看法 请使用IE或者Firefox浏览器,暂不支持Chrome!
慧都控件网为DevExpress界面控件的中国地区唯一正式授权经销商,正版控件销售公司,授权代理商,经销商及合作伙伴。
电话:400-700-1020
023-66090381
邮箱:sales@evget.com
相关资源
- XtraGrid 中文字符导出到Excel时不能显示
- 创建自定义XtraVerticalGrid控件子节点来实现自定义行缩进
- GridView 快速遍历
- 在GridControl中如何打开Excel文件
- GridView详细视图的服务器模式功能使用方法
- 如何绑定实体框架对象到XtraGrid
- 使用CreatePrintInfoInstance导出自定义文本和Gridbands
- GridView中格式化数据显示的问题
- 显示AgDataGrid主从数据
- GridControl运行时是否可以不选中任何行
- XtraGrid网格行热跟踪
- DXGrid的列能不能通过双击列表头实现
- 如何获取GridView的页面列值
- DXPivotGrid如何增加一列百分比
- DXGrid单元格样式
- 更改数据单元格的呈现效果
- ASPxGridView分组排序
- WPF表格控件GridControl如何设置行高
- 定义DXGrid的打印外观
- ASPxGridView控件FAQ