質問

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

わかりやすく編集

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

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

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

今、" OnSelectedIndexChanged"を使用してポストバックしています。その後、イベントを処理し、適切なページにリダイレクトします。

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

カスタムjavascriptを使用してURLを構築するのが最良のオプションですか?

役に立ちましたか?

解決

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

<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>

他のヒント

自動ポストバックをfalseに設定し、これをonchangeクライアント側イベントに追加します(値がURL全体を持っていると仮定して、そうでない場合は適切に編集します):

window.navigate(this.options[this.selectedIndex].value);

なぜ、AJAX経由で都市情報を取得しないのか疑問に思います( www.aspにいくつかのビデオチュートリアルがあります。 net / learn )、ページのジャンプを作成する代わりに都市情報をユーザーに表示しますか?

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

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

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

提案をありがとう!

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top