今天在处理GridView分页问题时遇到了一个比较常见的分页出错问题。
由于绑定GridView数据源时是在.CS文件里用代码进行绑定,所以当在.ASPX文件里对GridView属性设置AllowPaging为 True时,直接进行分页调试时却报错“"GridView1"激发了未处理的事件"PageIndexChanging"”,之前直接在可视化绑定数据 源时没出现过这种问题。并且打开了之前的直接可视化绑定数据源并且分页调试正常的文件来查找,并没有发现PageIndexChanging这个函数事 件。
以下为GridView“GridView1”激发了未处理的事件“PageIndexChanging”的解决办法
一、在控件girdview的代码(在.ASPX文件的源文件里)后面加上
程序代码
OnPageIndexChanging="GridView1_PageIndexChanging
二、在对应的.CS文件里插入以下代码:
public partial class research : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
string qname = Request.Form["qname"];
this.ViewState["sql"] = qname;
}
string qname2 = this.ViewState["sql"].ToString();
using (DataClassesDataContext myData = new DataClassesDataContext())
{
var allSearch = from review in myData.Customers
where review.CompanyName.Contains(qname2)
select review;
GridView1.DataSource = allSearch;
GridView1.DataBind();
}
}
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}
}
用ViewState记住返回的数据,否则下一页后会报递交的数据为空