簡體   English   中英

服務器端數據在客戶端可用

[英]Server-side data available client-side

我要做的是根據頁面上的其他下拉列表更改下拉列表的選擇。 我所做的就是將所有可能性都寫在隱藏的文本框中。 這可行,但是當有很多選擇時,頁面速度很慢。

有一個更好的方法嗎?

感謝您的時間

最好的方法是使用AJAX。 總之,您將需要:

  1. 編寫一個服務器端腳本(可能是ashx),該腳本返回相關結果以進行依賴於某些變量的下拉列表
  2. 使用JavaScript(或類似jQuery的庫)對ashx頁面進行AJAX調用。 該調用將需要通過POST或GET將定義變量傳遞給服務器。
  3. 將此AJAX調用附加到選擇框的change事件,以便在更改它們時可以更新其他框
  4. 完成AJAX調用后,您將需要一個JavaScript函數來整理返回的數據。 此數據可以是添加到頁面的簡單HTML,也可以是需要格式化的更復雜的JSON對象。 這是你的選擇。 但是這種格式和響應需要用JavaScript編寫。

可以使用一些可用的ASP.Net AJAX技術來完成。 如果將下拉列表框放在UpdatePanel並將其設置為異步回發,則可以使它們顯示為在選擇時刷新。

因為僅刷新UpdatePanel的代碼,所以加載結果要快得多。

有關使用updatepanel和幾個下拉列表的漂亮示例,請參見本文

正如勞倫斯克所說,AJAX將是最終解決方案。 asp.net中,提供了簡單易懂的解釋,一個好的樣品在這里 稍微使用Web Service可能會導致一些暫停,但對於要查找的內容仍然有很好的解釋。

我將介紹一種可能的情況。

  1. 首次加載頁面時,將顯示“默認”選項列表。 這是使用服務器端邏輯完成的。
  2. 當用戶在客戶端上使用Javascript單擊下拉列表時,您可以計算其他人的行為並相應地進行操作。
  3. 如果您的列表之一需要客戶端無法提供的新信息,則可以使用AJAX輪詢服務器以獲取該信息。
  4. (可選)如果您不希望每次用戶在下拉列表中單擊時都對服務器進行輪詢,則可以在客戶端緩存新信息。

AJAX是所有其他人所指出的方式,您可以使用其他人已經編寫的代碼來節省時間,例如: http : //www.codeproject.com/KB/custom-controls/ajaxdropdownlist.aspx

到目前為止,這已經很老了,但至少可以向您展示您的需求。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM