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