Я использую Intelligencia.UrlRewriter на странице с контролем списка и датапагером. Пейджинг данных работает нормально, но пейджер использует реальный URL вместо перезаписанного..net datapager + listview + Intelligencia.UrlRewriter
Если URL перезапись:
/products-page-1.aspx?page=2
И реальный URL:
/products.aspx?id=1
пейджера использует /products.aspx?id=1&page=2
Я хочу, чтобы иметь возможность установить его так пейджера использует:
/products-page-1.aspx?page=2
I нашел некоторую информацию о сети и получил его работу с функциями, указанными ниже:
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 со страницы, функция перестает работать.
Есть ли способ изменить целевой URL-адрес в датапагере?