尽管多次提出与此类似的问题,但问题仍未得到解决。这是一个问题:
我有一个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
停止正常工作?我该怎么办?
答案 0 :(得分:6)
解决方案是,每次更改页面索引时,都应重新填充用于填充网格视图的数据集。通过这种方式,您可以确保在gridview页码触发的每个单独的回发中,将填充结果。
答案 1 :(得分: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 :(得分:3)
进一步研究:
http://msdn.microsoft.com/en-us/library/cc295545.aspx
与UpdatePanel控件不兼容的控件
以下ASP.NET控件与部分页面更新不兼容,因此不适用于UpdatePanel控件:
- 当GridS和DetailsView的EnableSortingAndPagingCallbacks属性设置为true时,它们会进行控制。默认值为false。
答案 3 :(得分:0)
我遇到了同样的问题,将updatepanel属性UpdateMode =“ Conditional”更改为UpdateMode =“ Always”,并设置属性ChildrenAsTriggers =“ true”为我解决了这个问题。
答案 4 :(得分:-1)
为此,您必须在页面索引更改事件中重新设置数据源。性能会降低,但这就是你可以运作的方式。
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.DataSource = ;//Set again the datasource
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
UpdatePanel2.Update();
}