.net datapager + listview + Intelligencia.UrlRewriter

Discussion in 'ASP .Net' started by .nLL, May 26, 2009.

  1. .nLL

    .nLL Guest

    Hi, i am using Intelligencia.UrlRewriter on a page that has a listview
    control and datapager. Data paging works fine but pager uses real url
    instead of rewritten one.

    if url rewrite is /products-page-1.aspx?page=2

    and real url

    /products.aspx?id=1

    pager uses /products.aspx?id=1&page=2

    i want to be able to set it so pager uses /products-page-1.aspx?page=2

    I have found some info on the net and got it working with below function
    protected void VideosDataPager_PreRender(object sender, EventArgs e)

    {
    DataPager pager = (DataPager)Page.FindControl("VideosDataPager");


    int count = pager.TotalRowCount;
    int pageSize = pager.PageSize;
    int pagesCount = count / pageSize + (count % pageSize == 0 ? 0 : 1);
    int pageSelected = pager.StartRowIndex / pageSize + 1;


    for (int i = 1; i <= pagesCount; ++i)
    {
    if (pageSelected != i)
    {
    HyperLink link = new HyperLink();
    link.NavigateUrl = "/products--page--" + catnameforPaging +
    "--1.aspx?p=" + i.ToString();
    link.Text = i.ToString();
    VideosList.Controls.Add(link);


    }
    else
    {
    Literal lit = new Literal();
    lit.Text = i.ToString();
    VideosList.Controls.Add(lit);
    }

    Literal space = new Literal();
    space.Text = " ";
    VideosList.Controls.Add(space);
    }

    }

    but with this i get 2 datapagin and if i remove VideosDataPager from the
    page function stops working.

    Is ther any way to change target url on datapager?
     
    .nLL, May 26, 2009
    #1
    1. Advertisements

  2. .nLL

    .nLL Guest

    fixed with

    protected void VideosDataPager_PreRender(object sender, EventArgs e)
    {

    DataPager pager = (DataPager)Page.FindControl("VideosDataPager");
    pager.Controls.Clear();

    int count = pager.TotalRowCount;
    int pageSize = pager.PageSize;
    int pagesCount = count / pageSize + (count % pageSize == 0 ? 0 : 1);
    int pageSelected = pager.StartRowIndex / pageSize + 1;

    if (pageSelected>1)
    {
    // first page
    HyperLink img = new HyperLink();
    img.ImageUrl = "/images/first.png";
    img.Text = "First page";
    img.NavigateUrl = "/videos--cat--" + catnameforPaging +
    "--1.aspx?s="+ NvUtils.GetCurrentSessionKey();
    VideosList.Controls.Add(img);
    // gap
    Literal space = new Literal();
    space.Text = " ";
    VideosList.Controls.Add(space);
    }


    // paging

    for (int i = 1; i <= pagesCount; ++i)
    {
    if (pageSelected != i)
    {
    HyperLink link = new HyperLink();
    link.NavigateUrl = "/videos--cat--" + catnameforPaging +
    "--1.aspx?s="+ NvUtils.GetCurrentSessionKey()+"&p=" + i.ToString();
    link.Text = i.ToString();
    VideosList.Controls.Add(link);


    }
    else
    {
    Literal lit = new Literal();
    lit.Text = i.ToString();
    VideosList.Controls.Add(lit);
    }

    Literal spaceb = new Literal();
    spaceb.Text = " ";
    VideosList.Controls.Add(spaceb);

    }
    if (pageSelected < pagesCount)
    {

    // last page
    HyperLink imgb = new HyperLink();
    imgb.ImageUrl = "/images/last.png";
    imgb.Text = "Last page";
    imgb.NavigateUrl = "/videos--cat--" + catnameforPaging +
    "--1.aspx?s=" + NvUtils.GetCurrentSessionKey() + "&p=" + pagesCount;
    VideosList.Controls.Add(imgb);
    }
    }
     
    .nLL, May 26, 2009
    #2
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.