GridView控件分页出错了! 如何实现分页功能?
执行分页后出现 错误如下:
IListSource 不包含任何数据源。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Web.HttpException: IListSource 不包含任何数据源。
看我的代码,页面初始化部份我将邦定放在了NOT ISPOSTBACK 中,如果将邦定放到NOT ISPOSTBACK 外 就正确。
protected void Page_Load(object sender, EventArgs e)
Conn1 = new SqlConnection(myclass.setconn());
Conn2 = new SqlConnection(myclass.setconn());
string sqlstr = "select BH,XMMC,XMBH,DWMC,TZLY,SBSJ from LXSBB ";
string wheres1= " ",wheres= " ";
wheres = " WHERE (JD=0)AND(ZT= '0 ')AND(DWMC LIKE '%{0}% ') ";
wheres = string.Format(wheres, Session[ "DSMC "].ToString());
if (TextBox1.Text.Trim()!= " ")
{
switch(DropDownList1.SelectedValue)
{
case "项目名称 " : wheres1= "AND(XMMC LIKE '%{0}% ') ";
break ;
case "项目编号 " : wheres1= "AND(XMBH LIKE '%{0}% ') ";
break ;
case "投资来源 ": wheres1 = "AND(TZLY LIKE '%{0}% ') ";
break ;
}
}
if (wheres1!= " ")
{
wheres1=string.Format (wheres1,TextBox1.Text );
wheres+=wheres1;
}
sqlstr+=wheres+ " ORDER BY SBSJ ";
myda = new SqlDataAdapter(sqlstr, Conn1);
myds = new DataSet();
GridView1.DataKeyNames = new string[] { "BH " };//主键
GridView1.DataSource = myds;
if (!IsPostBack)
{
title = myclass.setwebtitle();
myda.Fill(myds, "LXSBB ");
GridView1.DataBind();
}
-----------------------------------------------
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
myda.Fill(myds, "LXSBB ");
GridView1.DataBind();
GridView1.PageIndex = e.NewPageIndex;
}
-------------------------------------------------------
请问大家我错在哪里了?
[解决办法]
可以考虑用数据库分页
[解决办法]
数据库分页
就是存储过程分页,这个是记录很大的时候,用的。网上好多教程的,自己看下。性能很好。
[解决办法]
protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
myda.Fill(myds, "LXSBB ");
GridView1.PageIndex = e.NewPageIndex;
GridView1.DataBind();
}