ListView + DataPager在不使用LinqDataSource时会有问题
ASP.NET 3.5中新增的ListView、DataPager与LinqDataSource控制项可说是绝佳拍档,
不过当你不使用LinqDataSource的时候会发生一个小问题,就是当你在第一次点选DataPager
中的页码时并不会跟着跳页,而点选第二次的时候才会正常运作!所谓的「不使用LinqDataSource
的时候」是指你的资料来源的取得可能是写在Code Behind中或是使用ObjectDataSource或
SqlDataSource控制项,例如:所谓的「不使用LinqDataSource的时候」是指你的资料来源的取
得可能是写在Code Behind中或是使用ObjectDataSource或SqlDataSource控制项,例如:
protected void Page_Load( object sender, EventArgs e) protected void Page_Load( object sender, EventArgs e)
{
var q = from p in db.News select p; var q = from p in db.News select p;
ListView2.DataSource = q; ListView2.DataSource = q;
ListView2.DataBind();
}
{
var q = from p in db.News select p; var q = from p in db.News select p;
ListView2.DataSource = q; ListView2.DataSource = q;
ListView2.DataBind();
}
要解决这个问题必须要在ListView控制项宣告OnPagePropertiesChanging个事件,并执行该DataPager的
SetPageProperties方法,范例程式如下:要解决这个问题必须要在ListView控制项宣告
OnPagePropertiesChanging个事件,并执行该DataPager的SetPageProperties方法,范例程式如下:
SetPageProperties方法,范例程式如下:要解决这个问题必须要在ListView控制项宣告
OnPagePropertiesChanging个事件,并执行该DataPager的SetPageProperties方法,范例程式如下:
protected void Page_Init( object sender, EventArgs e)
{
ListView2.PagePropertiesChanging += ListView2.PagePropertiesChanging +=
new EventHandler<PagePropertiesChangingEventArgs>(ListView2_PagePropertiesChanging); new EventHandler<PagePropertiesChangingEventArgs>(ListView2_PagePropertiesChanging);
}
void ListView2_PagePropertiesChanging( object sender, PagePropertiesChangingEventArgs e) void ListView2_PagePropertiesChanging( object sender, PagePropertiesChangingEventArgs e)
{
ListView srcListView = sender as ListView; ListView srcListView = sender as ListView;
this .DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, false); this .DataPager1.SetPageProperties(e.StartRowIndex, e.MaximumRows, false);
srcListView.DataBind();
}