首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.net datapager + listview + Intelligencia.UrlRewriter

.net datapager + listview + Intelligencia.UrlRewriter
EN

Stack Overflow用户
提问于 2009-05-26 17:50:14
回答 1查看 1.4K关注 0票数 0

我在一个有listview控件和datapager的页面上使用Intelligencia.UrlRewriter。数据分页工作正常,但分页程序使用真实的URL而不是重写的URL。

如果URL重写是:

代码语言:javascript
复制
/products-page-1.aspx?page=2

和真实的URL:

代码语言:javascript
复制
/products.aspx?id=1

寻呼机使用/products.aspx?id=1&page=2

我希望能够设置它,以便寻呼机使用:

代码语言:javascript
复制
/products-page-1.aspx?page=2

我在网上找到了一些信息,并使用以下功能使其工作:

代码语言:javascript
复制
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);
   }
}

但是这样我得到了2个数据页,如果我从页面中删除了VideosDataPager,函数就会停止工作。

有没有办法在datapager上更改目标URL?

EN

回答 1

Stack Overflow用户

发布于 2009-05-26 19:04:32

修复为

代码语言:javascript
复制
protected void VideosDataPager_PreRender(object sender, EventArgs e)

{

代码语言:javascript
复制
   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);
   }

}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/911896

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档