求助:关于gridview的PageIndexChanging和DataBound的问题。
我的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但是必须要点击两次,才能显示该页。请问各位这个问题该怎么解决?谁能给个思路?谢谢!:)