ASP.net Gridview 分页在 UpdatePanel 中不起作用

问题描述 投票:0回答:5

尽管类似的问题已经被问过很多次了,但问题仍然没有解决。这是问题: 我有一个

GridView
,它包含在选项卡容器
AJAX
控件中,该控件本身位于
UpdatePanel
内。
Gridview
工作得很好,并且其相应的方法被准确地触发,但是当我在单击第 2 页后启用
paging
(例如)时,
GridView
会隐藏自己。这是我的 PageIndexChanging() 方法:

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.PageIndex = e.NewPageIndex;        
    GridView1.DataBind();
    UpdatePanel2.Update();        
}

为什么分页会导致

GridView
停止正常工作?我能做什么?

asp.net ajax gridview pagination updatepanel
5个回答
7
投票

解决方案是,每次更改页面索引时,您都应该重新填充用于填充网格视图的数据集。通过这种方式,您可以确保在由 gridview 页码触发的每个单独的回发中,都会填充结果。


4
投票

进一步研究:

http://msdn.microsoft.com/en-us/library/cc295545.aspx

与UpdatePanel控件不兼容的控件

以下 ASP.NET 控件与部分页面更新不兼容,因此不适合在 UpdatePanel 控件内工作:

  • GridView 和 DetailsView 控件的 EnableSortingAndPagingCallbacks 属性设置为 true 时。默认为 false。

4
投票

我刚刚尝试了上面的代码。我遇到了同样的问题,现在一切正常。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) 
{ 
    GridView1.PageIndex = e.NewPageIndex;         
    GridView1.DataBind(); 
    //  UpdatePanel2.Update();   <-- Remove this line from your code.
} 

我在更新面板中有 GridView。您是否也在 .aspx 文件中写入了 PageIndexChanging 事件?

希望这有帮助。


2
投票

我遇到了同样的问题,将 updatepanel 属性 UpdateMode="Conditional" 更改为 UpdateMode="Always" 并设置属性 ChildrenAsTriggers="true" 解决了我的问题。


1
投票

为此,您必须在页面索引更改事件中重新设置数据源。性能会降低,但这就是你可以让它发挥作用的方式。

protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.DataSource = ;//Set again the datasource
    GridView1.PageIndex = e.NewPageIndex;
    GridView1.DataBind();
    UpdatePanel2.Update();
}
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.