求助:关于gridview的PageIndexChanging和DataBound的问题。

walkghost 2008-06-15 09:51:22
我的gridview在前台绑定了datasource,当我点击按钮的时候,根据输入的条件查询数据库,然后把结果绑定到这个gridview上显示出来。但是会提示引发了未处理的gridview PageIndexChanging事件。从网上查询资料得知设置gridview的allowpaging属性为true并且自己定义PageIndexChanging方法,代码如下:

GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();

但是由于我自己定义了gridview的DataBound事件,所以在上面的PageIndexChanging事件执行GridView1.DataBind();的时候,就会触发gridview的DataBound事件,代码如下:

//查询网点名称
int i = 0;
for (i = 0; i < GridView1.Rows.Count; i++)
{
SqlConnection con_GetParentPlaceName = new SqlConnection(S_DataExecute.dbconn);
//根据第16列:网点编号。查询出网点名称并填充到第17列:上级机构名称
SqlCommand cmd_GetParentPlaceName = new SqlCommand("select PlaceName from placeinfo where PlaceNO ='" + GridView1.Rows[i].Cells[16].Text.ToString().Trim() + "'", con_GetParentPlaceName);
con_GetParentPlaceName.Open();
SqlDataReader rd_ParentPlaceName = cmd_GetParentPlaceName.ExecuteReader();
while (rd_ParentPlaceName.Read())
GridView1.Rows[i].Cells[17].Text = rd_ParentPlaceName["PlaceName"].ToString();
con_GetParentPlaceName.Close();

}
//查询结束

PS:数据库的格式不能修改,要不我就不用这么头疼了。

这样的结果导致了当我点击gridview的另外一页的时候,gridview就会显示EmptyDataText,说数据为空。但当我把PageIndexChanging事件里的GridView1.DataBind();注释掉的时候,虽然点击gridview的另外一页不会出现EmptyDataText但是必须要点击两次,才能显示该页。请问各位这个问题该怎么解决?谁能给个思路?谢谢!:)
...全文
1011 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
walkghost 2008-06-15
  • 打赏
  • 举报
回复
谢谢各位!问题已经解决。
解决方法:
把计算行数的代码从Gridview的Databound事件里面拎出来作为一个单独的函数调用,在查询按钮的事件里面,每当gridview数据绑定以后调用此函数。去掉gridview的DataBound事件。
THS各位!
elf512 2008-06-15
  • 打赏
  • 举报
回复
在datasource的selecting事件里面每次要给定你检索的参数
不然就会是空的
我也遇到这样的问题
查msdn才解决
一品梅 2008-06-15
  • 打赏
  • 举报
回复
在页面绑定的时候要根据数据源了,数据源要包括搜索数据等子条件.
请参考一下:
http://www.cnblogs.com/onlyendure/archive/2008/04/28/1174579.html
walkghost 2008-06-15
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 only_endure 的回复:]
当我点击按钮的时候,根据输入的条件查询数据库
===
满足条件的数据多于一页?
[/Quote]
恩,银行的系统,有可能很多页。
一品梅 2008-06-15
  • 打赏
  • 举报
回复
当我点击按钮的时候,根据输入的条件查询数据库
===
满足条件的数据多于一页?
walkghost 2008-06-15
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xjbx 的回复:]
EmptyDataText为什么会为空呢?
[/Quote]
我也在纳闷。
jizhikuan 2008-06-15
  • 打赏
  • 举报
回复
每次有新的查询就直接调用填充GridView的方法。
至于单击两次才能显示新的,应该是数据填充问题
xjbx 2008-06-15
  • 打赏
  • 举报
回复
EmptyDataText为什么会为空呢?
walkghost 2008-06-15
  • 打赏
  • 举报
回复
另外请大家再给个建议,在什么事件里面写填充模板列的内容比较好?

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧