2008-12-30 68 views
3

什麼是最好的方法來處理,你有一個ASP.Net DROPDOWNLIST用來鏈接到另一個URL從ASP.NET重定向下拉

編輯爲清楚起見

這裏的情況是基本情況:

DROPDOWNLIST具有綁定到它

選擇的城市之一,應該送我去根據城市的URL 5個城市

現在我使用「OnSelectedIndexChanged」事件發佈回來,然後處理事件並重定向到適當的頁面。

但是,這會導致每個城市選擇服務器2個點擊,1個處理回發和重定向,然後另一個呈現實際頁面。

是使用自定義JavaScript來構建一個URL我最好的選擇?

+0

你能描述一個場景,以便我們可以幫助更好嗎? – Perpetualcoder 2008-12-30 19:26:37

回答

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

很酷,你不必訴諸任何地方的<%= ddl.ClientID%>! – jrcs3 2008-12-30 20:07:20

3

設置自動回爲false,這增加了的onchange客戶端事件(假設值具有完整的URL,如果不是,根據需要編輯):

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

我只是奇怪,爲什麼不取通過AJAX城市的信息(有幾個視頻教程上www.asp.net/learn)和show用戶是城市信息而不是cre吃了其他更多的頁面跳轉?

這只是一個想法,一個Web 2.0的想法:)

0

如果頁面比較重,你關心的渲染時間,你可以使用Ajax來呈現查詢結果。服務器打到處理髮布數據和重定向應該是最小的,不值得做客戶端。就我個人而言,我更關注於第一次顯示用戶想要的數據。

0

通常情況下,我會同意,但是需要爲每個頁面提供一個具體的URL +重新生成頁面的其他部分以及訪問URL。

感謝您的建議,但!