读书人

帮忙看看小弟我的datalist分页出错在哪

发布时间: 2012-02-01 16:58:19 作者: rapoo

帮忙看看我的datalist分页出错在哪了吧,卡在这儿两天了.
前几天做了个datalist分页运行良好,同在却报起错来.
错误:
索引-4不是为负数,就是大于行数.
代码如下:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Session.Add( "test1 ", 0);
fenye();
}
}
protected void fenye()
{
SqlConnection con = DB.createConnection();
SqlDataAdapter sda = new SqlDataAdapter();
sda.SelectCommand = new SqlCommand( "select * from DetailsView ", con);
DataSet ds = new DataSet();
sda.Fill(ds, "emp ");
System.Web.UI.WebControls.PagedDataSource ps = new PagedDataSource();
ps.DataSource = ds.Tables[ "emp "].DefaultView;
ps.AllowPaging = true;
ps.PageSize = 4;
this.LabelNum.Text= Convert.ToString(Convert.ToInt32(Session[ "test1 "])+1);//labelNum显示页码.
ps.CurrentPageIndex = Convert.ToInt32(Session[ "test1 "]);
this.Btnleft.Enabled = true;
this.BtnRight.Enabled = true;
if (Convert.ToInt32(Session[ "test1 "]) == 0)
{
this.Btnleft.Enabled = false;//Btnleft为控制向左翻页
}
if (Convert.ToInt32(Session[ "test1 "]) == ps.PageCount - 1)
{
this.BtnRight.Enabled = false;//Btnright为控制向右翻页
}
this.DataListALL.DataSource = ps;
this.DataListALL.DataBind();
}
protected void Btnleft_Click(object sender, EventArgs e)


{
Session[ "test1 "] = Convert.ToInt32(Session[ "test1 "]) - 1;
fenye();
}
protected void BtnRight_Click(object sender, EventArgs e)
{
Session[ "test1 "] = Convert.ToInt32(Session[ "test1 "]) + 1;
fenye();
}

[解决办法]
你那太麻烦
http://blog.sina.com.cn/u/3f475b3d010008fq
这里有datalist分页技术
[解决办法]
你fenye()方法写的没问题,关键检查下你当前页面的值是否正确.
[解决办法]
PagedDataSource pds = new PagedDataSource();

pds.DataSource = ds_Statis.Tables[0].DefaultView;

pds.PageSize = 6;

pds.AllowPaging = true;

ViewState[ "PageCount "] = pds.PageCount;

this.lbl_TotalPage.Text = ViewState[ "PageCount "].ToString();

this.lbl_CurrentPage.Text = ViewState[ "CurrPage "].ToString();

if(int.Parse(ViewState[ "CurrPage "].ToString()) - 1 == 0)
{
this.lnk_First.Enabled = false;

this.lnk_Previous.Enabled = false;
}
if(int.Parse(ViewState[ "CurrPage "].ToString()) == pds.PageCount)
{
this.lnk_End.Enabled = false;

this.lnk_Next.Enabled = false;
}

pds.CurrentPageIndex = int.Parse(ViewState[ "CurrPage "].ToString()) - 1;

this.dg_Statis.DataSource = pds;

this.dg_Statis.DataBind();


private void lnk_Previous_Click(object sender, System.EventArgs e)
{
this.m_CurrentPage = int.Parse(this.lbl_CurrentPage.Text);

m_CurrentPage--;

this.lbl_CurrentPage.Text = m_CurrentPage.ToString();

ViewState[ "CurrPage "] = this.m_CurrentPage;

BindData();
}

private void lnk_Next_Click(object sender, System.EventArgs e)
{
this.m_CurrentPage = int.Parse(this.lbl_CurrentPage.Text);

this.m_CurrentPage++;

this.lbl_CurrentPage.Text = this.m_CurrentPage.ToString();

ViewState[ "CurrPage "] = this.m_CurrentPage;

BindData();
}

读书人网 >asp.net

热点推荐