0

クエリ文字列を取得し、パラメータに従って現在のページを読み込む動的ページがあります。URLは「dynamic.aspx?p =」のようで、pはパラメータです。すべてのページは同じディレクトリにあり、「about」、「contact」などの異なる名前が付いています。

問題は、すべてのリンクがあるページに戻らずに、[次へ]および[前へ]ボタンを作成してページ間を移動する方法です。

私は、currnetページのURLを取得し、switch-caseでURLを次の前のボタンに割り当てるjavascriptで実行できると思いますが、より良い方法はありますか?

私はasp.net、C#、javascriptを使用しています。

[編集]サーバー側で実行されるため、そのサウンドの背後にあるコードでも実行できることを追加するのを忘れました

4

2 に答える 2

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)。2行目は、テキスト表現を数値(0から2)に変換します。ページが見つからない場合はArray.IndexOf-1が返されます。これは、配列の最後の項目を表します(ラップアラウンドのため)。そして最後の2行は、配列から前または次の項目をラップアラウンドで取得します。

于 2013-03-20T11:17:02.723 に答える
0

クエリ文字列から現在のpgae値を保存し、それを非表示フィールドに保存して、前のページを別の非表示フィールドに割り当てます。これを行うロジックがあります。ナビゲートページはサーバー側になりますので、プロセスサーバー側も作成してください。javascriptで行うよりも簡単かもしれません

于 2013-03-20T10:50:38.227 に答える