2013-03-20 2 views
0

У меня есть динамическая страница, которая получает строку запроса и загружает текущую страницу в соответствии с параметром, URL-адрес похож на «dynamic.aspx? P =», а параметр p является параметром. Все страницы находятся в одном каталоге и имеют другое имя, например «about», «contact» и т. Д.Навигация по страницам

Вопрос в том, как я могу сделать следующую и предыдущую кнопку для перемещения между страницами, не возвращаясь на страницу, где находится вся ссылка?

Я думаю, что я могу сделать с помощью javascript, где я беру URL-адрес страницы currnet и с ключом коммутатора назначил URL-адрес следующей и предыдущей кнопке, есть ли лучший способ?

Я использую asp.net, C# и javascript.

[править] Забыл добавить, что я могу сделать это также на код, что за звук лучше, потому что он работает на стороне сервера

+0

сохранить текущее значение pgae из строки запроса и сохранить его в скрытом поле, присвоить его кнопке prev? – Sakthivel

ответ

1

Сделайте это на стороне сервера. Что-то вдоль этих линий:

var strPrev=""; 
var strNext=""; 
switch(Request.QueryString["p"]) 
{ 
    case "about": 
    strPrev="last"; 
    strNext="contact"; 
    break; 
    case "contact": 
    strPrev="about"; 
    strNext="last"; 
    break; 
    case "last": 
    strPrev="contact"; 
    strNext="about"; 
} 

Конечно, есть способы, чтобы выразить это более лаконичные (массивы) или сделать его более гибким (конфигурационные файлы или базы данных). Дайте мне знать, хотите ли вы пойти в этом направлении.

Update: Вот решение, в котором страницы перечислены в массиве:

var pages = new string[] { "about", "contact", "last" }; 
var index = Array.IndexOf(pages, Request.QueryString["p"]); 
var previousPage = pages[(index + pages.Length - 1) % pages.Length]; 
var nextPage = pages[(index + 1) % pages.Length]; 

В этом растворе страницы перечислены в массиве (строка # 1). Вторая строка преобразует текстовое представление в число (от нуля до двух). Если страница не найдена Array.IndexOf вернет -1, это будет последним элементом массива (из-за обертки). И последние две строки получают предыдущий или следующий элемент из массива с оберткой.

+0

Спасибо, я подумал о чем-то вроде этого, если я использую массив, будет проще поддерживать код? Я думаю, что я буду использовать этот параметр, потому что мне нужны разные цвета фона для страниц. Как я работаю с массивом? Мне не нужна база данных, даже не доступ –

+0

Спасибо, Саймон, я сделал это, как вы писали выше, я не использовал массив, первый пример мне подходит. –

0

магазин текущее значение pgae из строки запроса и сохранить его в скрытое и назначить предыдущей странице в другое скрытое поле, есть логика для этого. поскольку навигационная страница будет на стороне сервера, сделайте также сторону сервера процесса. Это может быть легко, чем делать это в javascript

Смежные вопросы