3

別の URL へのリンクに使用される ASP.Net ドロップダウンリストがある状況を処理するための最良の方法は何ですか?

明確にするために編集された

基本的なシナリオは次のとおりです。

5 つの都市がバインドされたドロップダウンリスト

都市の 1 つを選択すると、その都市に基づいた URL が表示されます

現在、「OnSelectedIndexChanged」イベントを使用して投稿し、イベントを処理して適切なページにリダイレクトしています。

ただし、これにより、選択した都市ごとにサーバーに 2 つのヒットが発生し、1 つがポストバックとリダイレクトを処理し、次に別のヒットが実際のページをレンダリングします。

カスタム JavaScript を使用して URL を作成するのが最良の選択肢ですか?

4

5 に答える 5

17

選択変更イベントのクライアント側ハンドラーを追加してから、選択した値に基づいて目的のページにリダイレクトできます。

<asp:DropDownList ID="ddl" runat="server"
  onchange="document.location.href = this.value;" >
    <asp:ListItem Text="a" Value="http://url1"></asp:ListItem>
    <asp:ListItem Text="b" Value="http://url2"></asp:ListItem>
    <asp:ListItem Text="c" Value="http://url3"></asp:ListItem>
    <asp:ListItem Text="d" Value="http://url4"></asp:ListItem>
</asp:DropDownList>
于 2008-12-30T19:47:27.017 に答える
3

autopostbackをfalseに設定し、これをonchangeクライアント側イベントに追加します(値にURL全体があると想定し、そうでない場合は、必要に応じて編集します)。

window.navigate(this.options[this.selectedIndex].value);
于 2008-12-30T19:44:47.990 に答える
0

ページが重く、レンダリング時間が気になる場合は、ajax を使用してクエリ結果をレンダリングできます。投稿データとリダイレクトを処理するためのサーバー ヒットは最小限に抑える必要があり、クライアント側で実行する価値はありません。個人的には、ユーザーが最初に必要とするデータを表示することにもっと集中したいと思います。

于 2008-12-30T20:23:51.497 に答える
0

AJAX ( www.asp.net/learnにはいくつかのビデオ チュートリアルがあります) を介して都市情報をフェッチし、他のページ ジャンプを作成する代わりにユーザーに都市情報を表示してみませんか?

それは単なるアイデア、Web 2.0 のアイデアです :)

于 2008-12-30T20:16:08.953 に答える
0

通常、私は同意しますが、各ページに具体的な URL が必要であり、URL にヒットしたときにページの他の部分も再生成する必要があります。

しかし、提案をありがとう!

于 2008-12-30T20:45:15.993 に答える