我有一个 ListView
控件和一个应用于它的 DataPager
控件(DataPager
'PagedControlID
已设置到ListView
'ID
)。
碰巧我以这种方式将 ListView
绑定(bind)到我的数据源(数组):
protected void Page_Load(object sender, EventArgs e) {
if (!this.IsPostBack) {
MyType[] x = ...; /* Returns an array of MyType */
this.MyLV_ListView.DataSource = x;
this.MyLV_ListView.DataBind();
}
}
我启动并转到该页面,它页面!但是当我选择另一个页面时,所有内容都是空的,我的意思是有一定数量或条目,但重复区域是空的。
如果我删除回发条件,就可以了!
protected void Page_Load(object sender, EventArgs e) {
MyType[] x = ...; /* Returns an array of MyType */
this.MyLV_ListView.DataSource = x;
this.MyLV_ListView.DataBind();
}
这是为什么呢? 我无法再次加载所有内容,这是我真正想避免的事情......
谢谢
注意:即使在 ListView
和 DataPager
中将 EnableViewState
设置为 true
也不会产生任何影响。
最佳答案
看看这篇博文:ASP.NET DataPager not paging after first PostBack
您还可以尝试以下几项操作:
OnPreRender 事件期间的数据绑定(bind)
protected override void OnPreRender(EventArgs e)
{
this.MyLV_ListView.DataBind();
base.OnPreRender(e);
}
尝试处理 ListView 的 PagePropertiesChanged 事件
MyLV_ListView_PagePropertiesChanged(object sender, EventArgs e)
{
this.MyLV_ListView.DataSource=someDatasource;
this.MyLV_ListView.DataBind()
}
关于c# - ListView + DataPager 控件不维护状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6416331/