【发布时间】:2012-08-22 07:56:25
【问题描述】:
我在我的应用程序中广泛使用 GridView 和 Repeater(以及其他类似 DropDownList)控件以及 ObjectDataSource为ObjectDataSource 提供数据的组件和类(ObjectDataSource 上的TypeName / SelectMethod 属性)。我最近注意到 SelectMethod 仅在
时调用IsPostBack == false
另外,当我手动绑定时,我总是在 !IsPostBack 时绑定。直到现在,我从不好奇控件如何在回发之间维护它们的数据(我必须创建带有排序/分页等的 GridView,并且我想有效地做到这一点)。
您能否解释/提供一些链接并说明它是如何完成的?
我也没有得到一件事:当使用 GridView 并迭代行时,有时我需要访问它的 GridViewRow.DataItem 属性以获取支持对象(通常是获取某种 ID)。有时它是空的 - 有时不是。我不知道为什么。但是它为空,我仍然可以访问(例如)GridViewRow.DataKeys。
谢谢
EDIT:知道什么时候回答说这要归功于 ViewState,我还有一个问题:如果我数据绑定 100 个非常重的业务对象并且我只使用数据绑定时属性很少(假设我还使用 OnRowDataBound 事件来渲染一些额外的数据),是否意味着整个对象都被序列化了?
【问题讨论】:
标签: asp.net data-binding gridview repeater