louis vuitton bag moncler jacka ugg boots mbt sko louis vuitton oslo moncler ugg www.steklo1.ru
   Поиск
 

Алгоритмы

Алгоритмы на С#

Cи Шарп это просто Simple C#
Логин Пароль Вход Регистрация
Главная
Изучаем C#
Web-приложения
Win-приложения
Web-сервисы
ADO.NET
FrameWork
Алгоритмы
Исходники
Классы
Среда разработки
Статьи
Форум
FAQ
О Проекте
Обратная связь
Отблагодарить
Rambler's Top100

Создаем paging своими руками (ASP.NET)

Сегодня мы рассмотрим метод создания пейджинга руками. То есть просмотр какого-либо списка
с постраничным просмотром.
Многие из Вас спросят:"А зачем вообще делать пейджинг руками когда в ASP.NET практически все контролы имеют автоматически создаваемый пейджинг?"
На это есть две причины, которые могут показаться некоторым не актуальными.
Первая причина вот в чем:
ASP.NET генерирует пейджинг (постраничный просмотр) используя javascript ссылки, поэтому пользователь
у которого js в броузере отключен не сможет перейти на другие страницы списка.
Второй следует из первого : так как роботы поисковых систем это примитивные броузеры и они не умеют ходить
по javascript ссылка то все страницы после первой окажутся не проиндексированными, поэтому что бы избавиться
от различных проблем с SEO оптимизацией я предлагаю делать пейджинг руками (живыми ссылками a href)

И так приступим
Текущую страницу будем передавать через GET параметр строки запроса
Добавим на страницу контрол literal в него мы будем генерировать наш HTML код.



<asp:Literal ID="lOutput" runat="server"></asp:Literal>




Определяем переменную которая будет содержать актуальную страницу списка
Далее в методе загрузки страницы пытаемся получить текущий номер страницы если он был передан в строке запроса



int page = 1;
protected void Page_Load(object sender, EventArgs e)
{
    if (Request.Params["page"] != null)
    {
        try
        {
            page = Convert.ToInt32(Request.Params["page"]);
        }
        catch { }
    }
    FillControl();
}




В методе FillControl() будем генерировать HTML код

Выставляем размер страницы и вычисляем первый и последний отображаемый элемент списка


private void FillControl()
{
    int page_size = 20;
    int fist = (page - 1) * page_size;
    int last = fist + page_size;




Формируем полный список контента - унас это будут просто цифры


        string output = "";
        ArrayList arNew = new ArrayList();
        for (int i = 0; i < 100; i++)
            arNew.Add(i);




Формируем таблицу и выводим все строки (контент) для диапазона от первой отборажаемой страницы до последней отображаемой


        output += "<table border=1>\n";
        output += "<tr ><th >Заголовок</th></tr>";
        for (int i = fist; i < last; i++)
        {
            if (i >= arNew.Count)
                break;
            string line = arNew[i].ToString();

            output += "<tr><td >\n" +
                "<a  href=\"http://" + line + "\">" + line + "</a></td>" +
                "</tr>";
        }




Вычисляем количество страниц


int page_count = Convert.ToInt32(Math.Ceiling(Convert.ToDouble(Convert.ToDouble(arNew.Count) / Convert.ToDouble(page_size))));




Ну и на последок
Формируем футер в нем будут ссылки для перехода на различные страницы
в параметре page передаем страницу
далее весь результат выводится в Literal



        string strPage = "";
        for (int i = 1; i <= page_count; i++)
        {
            if (page == i)
            {
                strPage += " <font style='font-size:14px' color=gray>" + i + "</font> ";
            }
            else
            {
                strPage += " <a href='" + Request.FilePath + "?page=" + i + "'>" + i + "</a> ";
            }
        }
        if (page_count > 1)
            output += "<tr><td ><BR>" + strPage + "</td><tr>";
        output += "</table>\n";
        

        lOutput.Text = output;




а вот и результат


Предыдущая стр.    Оглавление    Следующая стр.
Средняя оценка: (5 - 1 голосов)
Для оценки необходимо зарегистрироваться


Только зарегистрировавшиеся пользователи могут оставлять комментарии



Практический обучающий видео-курс "Основы C#"

От профессионального
разработчика для начинающих
и опытных программистов!

Кликните, чтобы изучить
язык C# с нуля и научиться
писать программы под платформу .NET!