powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Обсуждение нашего сайта (архив) [закрыт] [закрыт для гостей] / Не стыдно?
21 сообщений из 21, страница 1 из 1
Не стыдно?
    #2329115
Абысрал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То, что буги не правятся веками, все уже привыкли,
но неужели авторам до такой степени пофиг?..

Смотрим картику.
Image1.gif
...
Рейтинг: 0 / 0
Не стыдно?
    #2329433
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
есть класс.
возможно есть глюки, усиленно не тестировался, но в стандартном варианте работает корректно..
Код
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
/// <summary>
/// Пэйджинг</summary>
public class Paging
{
  private int _pageNum = -1;
  private int _pageCount = 1;
  private string _baseHREF = "";
  private string _class = "";
  private string _mask_Break = "..";
  private string _mask_PageSelected = "[#]";
  private string _mask_PageLink  = "#";
  private string _pagePrefix = "p";
  private char _urlComparer = '?';
  private string _allText = "все";
  private int _boundary = 2;
  private int _unbroken = 10;

  public Paging()  {}
  public Paging(int pageNumber, int pageCount)  {_pageNum = pageNumber; _pageCount = pageCount;}

  private string GetSelectedTemplate(string pageCaption)
  {
    return _mask_PageSelected.Replace("#", pageCaption);
  }

  private string GetLinkTemplate(string pageNum, string pageCaption)
  {
    return string.Format("<a href=\"{0}{1}{2}={3}\">{4}</a>",
      _baseHREF, _urlComparer, _pagePrefix,
      pageNum,
      _mask_PageLink.Replace("#", pageCaption));
  }

  private string GetLinkTemplate(string pageNum)
  {
    return GetLinkTemplate( pageNum, pageNum );
  }

  public string GetHtml()
  {
    StringBuilder sb = new StringBuilder();
    bool breakBefore, breakAfter;

    if( _pageNum > _pageCount )
      _pageNum = -1;

    if( _pageCount > 1 )
    {
      breakBefore = breakAfter = false;
      if( _pageCount > _unbroken + 1 )  //*
      {
        if( _pageNum != -1 )
        {
          if( _pageNum > 2 * _boundary + 2 )
            breakBefore = true;
          if( _pageNum < _pageCount - 2 * _boundary - 2 )  //*
            breakAfter = true;
        }
      }
      for( int i=1; i <= _pageCount; i++ )
      {
        if( _pageNum == -1 &&  i > _boundary + 1 &&  i < _pageCount - _boundary )
        {
          i = _pageCount - _boundary;
          sb.Append(_mask_Break);
        }
        else
        {
          if( breakBefore && i > _boundary + 1 )
          {
            i = _pageNum - _boundary;
            breakBefore = false;
            sb.Append(_mask_Break);
          }
          if( breakAfter && i > _pageNum + _boundary )
          {
            i = _pageCount - _boundary;
            breakAfter = false;
            sb.Append(_mask_Break);
          }
        }
        if(i == _pageNum)
          sb.Append(GetSelectedTemplate(i.ToString()));
        else
          sb.Append(GetLinkTemplate( i.ToString() ));
      }
      if(_pageNum == -1)
        sb.Append(GetSelectedTemplate(_allText));
      else
        sb.Append(GetLinkTemplate("-1", _allText));
    }

    string res = sb.ToString();
    if( res.Length != 0 )
      res = string.Format("<div{1}>{0}</div>", res, _class.Length!=0 ? string.Format(" class=\"{0}\"", _class) : "");
    return res;
  }

  public int PageNumber {get{return _pageNum;} set{_pageNum = value;}}
  public int PageCount {get{return _pageCount;} set{_pageCount = value;}}
  public int BoundaryDigitsCount {get{return _boundary;} set{_boundary = value;}}
  public int MaxUnbrokenDigits {get{return _unbroken;} set{_unbroken = value;}}
  public string BaseHref
  {
    get{return _baseHREF;}
    set
    {
      if( _baseHREF != value )
      {
        _baseHREF = value;
        if( _baseHREF.IndexOf('?') != -1)
          _urlComparer = '&';
      }
    }
  }
  public string CssClass {get{return _class;} set{_class = value;}}
  public string Mask_PageBreak {get{return _mask_Break;} set{_mask_Break = value;}}
  public string Mask_SelectedPage {get{return _mask_PageSelected;} set{_mask_PageSelected = value;}}
  public string Mask_LinkPage {get{return _mask_PageLink;} set{_mask_PageLink = value;}}
  public string AllCaption {get{return _allText;} set{_allText = value;}}

}
пример вывода:
Код
1.
2.
3.
4.
Paging paging = new Paging(pageNum, pageCount);
paging.CssClass = "gridP";
paging.BaseHref = string.Format("?pId={0}&g={1}&u={2}", pId, filter, userIdx );
pages = paging.GetHtml();
пример css:
Код
1.
2.
3.
.gridP  {font-size:70%; text-align:right; margin:0; font-weight:bold; color:blue;}
.gridP a  {margin:0px 3px; color:blue;}
.gridP a:hover {text-decoration:none;}
...
Рейтинг: 0 / 0
Не стыдно?
    #2329487
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Абысрал 
Не стыдно?

1..1, 2, 3, 4, 5, 6, 7
Мда... А за что здесь должно быть стыдно? Очень конечно лишние три символа жить мешают...
...
Рейтинг: 0 / 0
Не стыдно?
    #2329598
Абысрал
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам 
Мда... А за что здесь должно быть стыдно?
Так и запишем: Гаджимурадову не стыдно.
Послушаем ещё Сибилева.
...
Рейтинг: 0 / 0
Не стыдно?
    #2329826
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гаджимурадов Рустам 
Абысрал 
Не стыдно?

1..1, 2, 3, 4, 5, 6, 7
Мда... А за что здесь должно быть стыдно? Очень конечно лишние три символа жить мешают...
Стыдно не за 3 символа, а за реализацию. Эти три символа не помешали бы например вот где

1,2,3, ..., 23, 24
...
Рейтинг: 0 / 0
Не стыдно?
    #2329978
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02 
Стыдно за реализацию. Эти три символа не помешали бы например вот где

1,2,3, ..., 23, 24
То есть? Лучше было бы "пару страниц с конца и пару страниц с начала"?

На мой взгляд текущая реализация "первая страница и девять страниц с конца"
или "девять первых страниц и последняя страница" вполне удобна.
...
Рейтинг: 0 / 0
Не стыдно?
    #2330694
Фотография Внебрачная внучка zz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Картинка
Топик располагается на нескольких страницах: 1... 1,2,3,4,5

Нет романтики в Китае!!!!
Картинка
196 128 913
t259755-p2330694-519312.gif
...
Рейтинг: 0 / 0
Не стыдно?
    #2330737
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Внебрачная внучка zz 
Топик располагается на нескольких страницах: 1... 1,2,3,4,5
Так все-таки
Гаджимурадов Рустам 
Очень конечно лишние три символа жить мешают...
?
...
Рейтинг: 0 / 0
Не стыдно?
    #2331781
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гаджимурадов Рустам 
На мой взгляд текущая реализация "первая страница и девять страниц с конца"
То что ты озвучил не есть текущая реализация. Пример.
Код
1.
ФОТКИ с мобильников! Выкладываем, господа. (1,2,3,4,5,6,7,8,9 ..12,все)
Ситуация. Образовалась 12-я страница, а на 11-й есть ещё сообщения которыя юзер не прочел. На 11-ю юзер сразу попасть не может, зато полно ненужных ссылок на первые 9 давно устаревших страниц. При больших топиках, самые важные страницы последняя и предпоследняя.
...
Рейтинг: 0 / 0
Не стыдно?
    #2331962
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02 
Ситуация. Образовалась 12-я страница, а на 11-й есть ещё сообщения которыя юзер не прочел. На 11-ю юзер сразу попасть не может
Жмет на 12, появляется список "с конца", потом жмет на 11.
Если следовать Вашей логике, то, если сделать "список с конца", юзер не сможет
аналогично попасть на вторую страницу (не перейдя предварительно на первую).
Программизд 02 
зато полно ненужных ссылок на первые 9 давно устаревших страниц
Тут на все случаи жизни не угодишь - как конкретно предлагаете Вы? Сделать по умолчанию список "с конца"?
...
Рейтинг: 0 / 0
Не стыдно?
    #2332270
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно сделать чтобы ссылка выкидывала на первое непрочитанное сообщение, которое помечено словом "[New]" (ну чтоб скрол не крутить)
...
Рейтинг: 0 / 0
Не стыдно?
    #2334653
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor 
а можно сделать чтобы ссылка выкидывала на первое непрочитанное сообщение, которое помечено словом "[New]" (ну чтоб скрол не крутить)
Так и реализовано (по задумке), но иногда не работает.
...
Рейтинг: 0 / 0
Не стыдно?
    #2334745
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам 
vkodor 
а можно сделать чтобы ссылка выкидывала на первое непрочитанное сообщение, которое помечено словом "[New]" (ну чтоб скрол не крутить)
наверно вы хотели написать?
Так и реализовано (по задумке), но никогда не работает.
...
Рейтинг: 0 / 0
Не стыдно?
    #2334989
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет отчего же - у меня обычно работает.
...
Рейтинг: 0 / 0
Не стыдно?
    #2335680
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
//Жмет на 12, появляется список "с конца", потом жмет на 11.

Вот за это и должно быть стыдно.

//Если следовать Вашей логике, то, если сделать "список с конца", юзер не
//сможет аналогично попасть на вторую страницу

Зачем вдаваться в крайности, слева тоже можно пару страниц оставить, например, юзер находится на стра

1,2,3, ..., 111,112,113

Кстати у меня так и сделано здесь

//http://apzd02.jino-net.ru/sqlruclient/sqlrudatacache.html
...
Рейтинг: 0 / 0
Не стыдно?
    #2335702
Фотография profil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02 
Зачем вдаваться в крайности, слева тоже можно пару страниц оставить, например, юзер находится на стра

1,2,3, ..., 111,112,113

Кстати у меня так и сделано здесь

//http://apzd02.jino-net.ru/sqlruclient/sqlrudatacache.html
кстати я привел код, который это реализует
...
Рейтинг: 0 / 0
Не стыдно?
    #2335843
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02 
Зачем вдаваться в крайности, слева тоже можно пару страниц оставить, например, юзер находится на стра

1,2,3, ..., 111,112,113
Хм... Вы на редкость невнимательны:
Гаджимурадов Рустам 
То есть? Лучше было бы "пару страниц с конца и пару страниц с начала"?
Возможно это на самом деле более правильное решение.
...
Рейтинг: 0 / 0
Не стыдно?
    #2339681
vkodor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гаджимурадов Рустам 
Нет отчего же - у меня обычно работает.
может раскажете что надо настроить чтобы работало?
...
Рейтинг: 0 / 0
Не стыдно?
    #2340057
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vkodor 
может раскажете что надо настроить чтобы работало?
Ничего особенного - все как есть. Почему перестает работать сказать трудно - считается, что от слета куков, лечится соответственно их удалением.
...
Рейтинг: 0 / 0
Не стыдно?
    #2340396
Фотография Программизд 02
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Администратор
Гаджимурадов Рустам 
Программизд 02 
Зачем вдаваться в крайности, слева тоже можно пару страниц оставить, например, юзер находится на стра

1,2,3, ..., 111,112,113
Хм... Вы на редкость невнимательны:
Если этой ссылкой ты ссылаешься на случай

1..1,2,3,4,5,6,7

то этот ээфект вовсе не озвучиваемая реализация нумерации дейсвтительно многстраничного топика, а ГЛЮК нумерации, когда ВСЕ номера страниц видимы.
...
Рейтинг: 0 / 0
Не стыдно?
    #2340453
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Программизд 02 
Если этой ссылкой ты ссылаешься на случай
Я процитировал на что ссылаюсь.
Программизд 02 
ГЛЮК нумерации, когда ВСЕ номера страниц видимы.
Ну вот опять Вы невнимательны.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Обсуждение нашего сайта (архив) [закрыт] [закрыт для гостей] / Не стыдно?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]