2013-03-20 351 views
0

我有动态页面获取查询字符串,并根据参数加载当前页面,URL就像“dynamic.aspx?p =”,p是参数。 所有的页面都在同一个目录中,并且具有不同的名称,如“about”,“contact”等。页面导航

问题是我如何使next和prev按钮在页面之间移动而无需返回所有链接所在的页面?

我想我可以用javascript来做currnet页面的URL和switch-case分配给下一个和prev按钮的URL,有没有更好的方法?

我使用asp.net,C#和JavaScript。

[编辑] 忘了补充一点,我可以做到这一点也对后面的声音代码更好,因为它在服务器端

+0

从查询字符串存储当前的pgae值并将其存储在隐藏字段中将其分配给prev按钮? – Sakthivel 2013-03-20 10:47:27

回答

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"; 
} 

当然有办法表达这个更简洁(数组)或使其更灵活(配置文件或数据库)。让我知道你是否想朝那个方向前进。

更新:在这里的网页以阵列中列出的溶液:

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

谢谢,我想过这样的事情,如果我使用数组将代码更容易维护? 我认为我会使用这个选项,因为我需要不同的页面背景颜色。 我如何使用阵列?我不需要数据库甚至不访问 – 2013-03-20 12:24:31

+0

谢谢西蒙,我按照你上面写的那样做了,我没有使用数组,第一个例子对我来说很好。 – 2013-03-24 07:06:50

0

商店从查询字符串当前PGAE值运行,并将其存储在一个hiddenfield和分配prev页面到另一个隐藏字段,有一个逻辑来做到这一点。由于导航页面将在服务器端,因此也使得流程服务器端。这可能比在javascript中做得更容易