Постраничная навигация на Web

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Конфа в общем допиливается подобная здешней bulletin но на Domino.
Работает, но вопросец...
Сваял(допилил) постраничную навигацию на WEB во вьюхе
Код:
REM {Create links for each page of view};
total :=@DbLookup("":"NoCache"; ""; "WebBoardMainActiveCategorized"; @UrlQueryString("RestrictToCategory"); 1);
ThreadTopic:=@Elements(total);
viewname:="WebBoardMainActiveCategorized?OpenView&RestrictToCategory="+@UrlQueryString("RestrictToCategory");
count:=
@If(
@UrlQueryString("count")="" | @IsError(@TextToNumber(@UrlQueryString("count")));
@GetProfileField("Configuration_Profile"; "DefaultWebBoardCount");
@TextToNumber(@UrlQueryString("count"))
);
link := "<a href=\""+viewname+ "&Start=";
start:=1;
@While(start <= ThreadTopic;
@If(@Text(start) = @UrlQueryString("start");
html:=html + "<b>[ " + @Text(1+(start-1)/count) + " ]</b> ";
html:=html + link + @Text(start) + "&Count=" + @Text(count) + options + "\">[ " + @Text(1+(start-1)/count) + " ]</a> ");
start:=start+count
);
html
выводится как ... [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] и команды вычисляются в циферках как WebBoardSub?OpenView&RestrictToCategory=CCF5208A82A4871DC325744D00652101&Start=11&Count=10
и далее по страничкам.
Вот команды start и count стандартные. Сервер понимает и выводит соответственно пересчитанную вьюху.
Хочу пойти дальше. Чтоб &Start=11&Count=10 заменить например на &Page=1 &Page=2 и пр.
Вроде стандартными средствами никак? Вычислить номер страницы не проблема да комаду серверу как дать? &Page не поймет :(
Агентом можно попытаться так заточить но лениво и не везде проканает ... ;)
Похоже сделано тут
Еще мысли сообщества... ? Может шаблоном кто подсобит по случаю :)

P.S. Хозяйке на заметку :(
Конструкция .nsf/products/tov1234567890?open&start=1&count=3
также замечательно работает, где tov1234567890=имя дока и в форму дока вставлена вьюха и постранично показывается...
 
E

EHT

Вот пожалуй сам автор расказывает, как + +
и по теме постраничной навигации: демо бд от
Посмотреть вложение ultviews.zip
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
и по теме постраничной навигации: демо бд от
Сэнкс за базку, но там теже viewAjax?OpenView&Start=701&Count=20 только покруче и на JS
Речь шла о навигации с одним параметром. Буду курить еще ссылки...
 
L

Lexa-xa

Попробуй такую штуку.
В формочку (страницу) вставляешь <Computed value>
значение которой забиваешь:
Код:
page:=@UrlQueryString("page")
content:=@DbColumn("":"NoCache";"":"";"Content";ColumnWithContent);
needRows:=20;
@For(n:=1;n<=needRows;n:=n+1;
result:=content[(page-1)*n+1]
);
result
Необходимо предусмотреть проверку по количеству выводимых элементов (например при выводе последней страницы)
 
V

valmont

попробуй в урл писать то, что тебе нужно, ?openview&Page=2 ты знаешь сколько всего во вьюшке документов и знаешь сколько тебе нужно вывести... по номеру страницы узнаешь с какого именно тебе нужно вывести.
типа start = count*page-count+1
 

NetWood

Lotus Team
17.04.2008
565
96
BIT
174
Хм. Вьюха вставлена в форму.
Ну заберу я этот Рage с помощью @UrlQueryString. Вычислю что надо, и ?
Серверу что сказать на следующий пейдж? Команду то надо URLом давать.
В общем агентом надо. Пока оставил вопрос...
 
V

valmont

а дальше при открытии в location скриптом ссылку подставишь или ссылку на страничку с рефрешем и далее по ссылке редирект.
 
V

valmont

во втором посте, что давал EHT, там очень даже работоспобособный LS, воспроизвел у себя, очень даже неплохо.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!