目前我正在使用viewstate来存储我在分页数据时所使用的当前页码.我在页面上有3个控件,可以查看我可以翻阅的数据.
到目前为止,跟踪页码的最简单方法是viewstate,但它变得非常大,我不知道为什么.
所以我想用别的东西来跟踪页码,但我不知道该用什么.我应该把它嵌入隐藏的表格字段吗?将它传递给查询字符串?其他不错的选择?
您正在声明您正在使用viewstate存储当前页码,我猜您将在viewstate中明确存储此号码.
但是,asp.net默认会在viewstate中存储大量数据.在你的例子中,有3个控件启用了分页,asp.net将存储"控件中的所有数据",即3个控件中当前显示的所有数据都将存储在viewstate中.
解决这个问题的方法可能是明确地关闭3个分页控件上的"关闭"视图状态,不幸的是,这意味着您必须重新绑定每个页面加载的控件,这可能是也可能不是您的选项.
如果您只需要存储页码,您可以将其移动到控制状态,如msdn和pluralsight所述.
使用另一个答案中建议的查询字符串.
或者您可以继续使用viewstate,然后继续关闭整个页面的viewstate或只关闭分页控件,无论哪种方式都适合您.
我真的建议阅读Mrunal Brahmbhatt的真实理解观点,以深入解释观点状态.