Click here to Skip to main content
15,891,136 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hi I want pagging datalist with use Entity Framework but the result is just view one page :
This is my code :

C#
testEntities context=new testEntities();
protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        BindDataList(10, 0);
    }
    else
    {
        PlaceHolder1.Controls.Clear();
        CreatePagingControl();
    }
}

private int RowCount
{
    get
    {
        return (int)ViewState["RowCount"];
    }
    set
    {
        ViewState["RowCount"] = value;
    }
}
private void BindDataList(int take, int pageSize)
{


    var query = (from p in context.testTBL orderby p.testID select p).Take(take).Skip(pageSize).ToList();
    PagedDataSource page = new PagedDataSource();
    page.AllowCustomPaging = true;
    page.AllowPaging = true;
    page.DataSource = query;
    page.PageSize = 3;
    DataList1.DataSource = page;
    DataList1.DataBind();

    if (!IsPostBack)
    {
        RowCount = query.Count;
        CreatePagingControl();
    }
}

private void CreatePagingControl()
{
    for (int i = 0; i < (RowCount / 10) + 1; i++)
    {
        LinkButton lnk = new LinkButton();
        lnk.Click += new EventHandler(lbl_Click);
        lnk.ID = "lnkPage" + (i + 1).ToString();
        lnk.Text = (i + 1).ToString();
        PlaceHolder1.Controls.Add(lnk);
        Label spacer = new Label();
        spacer.Text = " ";
        PlaceHolder1.Controls.Add(spacer);
    }
}
void lbl_Click(object sender, EventArgs e)
{
    LinkButton lnk = sender as LinkButton;
    int currentPage = int.Parse(lnk.Text);
    int take = currentPage * 10;
    int skip = currentPage == 1 ? 0 : take - 10;
    BindDataList(take, skip);
}


this is HTML code :

ASP.NET
<div>
    <asp:DataList ID="DataList1" runat="server">
        <ItemTemplate>
            <%# Eval("testID")%>
        </ItemTemplate>
    </asp:DataList>
    <asp:PlaceHolder ID="PlaceHolder1" runat="server"></asp:PlaceHolder>
</div>


And this is Output :
<img src="http://upload.tehran98.com/img1/51wdlucih589qjbr42ke_thumb.png" border="0" alt="51wdlucih589qjbr42ke.png" />

Please help me !!! thanks
Posted

1 solution

Hi:

I think that your lose your Page Number. So try to keep in hidden item or session value this NumberPage, becouse is posible that the pageNumbe is the same value
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900