2010-09-27 122 views
2

基本問題:從數千個列表中選擇幾個項目。jquery:從自動完成填充選擇列表?

的潛在的解決方案:

我有一個搜索數據庫,並返回一個名稱/ ID對自動填充字段。這工作正常。

下一步是保留選定的ID,並允許用戶刪除一些如果需要。爲此,我一直在尋找使用select的方法,並且希望UI可以像this提供的那樣,但它不起作用:它允許您選擇已存在於select中但不起作用的項與動態創建的選擇。

最後一步是傳統的回傳(使用提交按鈕,這是在asp.net webforms中),我需要訪問ID的最終列表。

有沒有其他的選擇呢?

回答

3

根據您的意見,有很多方法來剝皮這隻貓。以下方法與SelectList思想相似,只是它不使用下拉列表。 ListBox與DropdownList的好處是用戶可以一次查看多個項目。當然,使用Listbox或DropdownList的選擇並不重要,因爲它們本質上都提供了相同的功能。關於這個答案的關鍵是值直到你準備好提交之前都存儲在客戶端上。

  1. 創建一個自動完成文本框,在您鍵入時動態填充列表框。
  2. 點擊一個列表框項目結果在兩件事情happeing:
    1. 所選擇的項目的ID被存儲在客戶端陣列
    2. 項都呈現/重新呈現在頁面上的列表恰好像SelectList一樣。點擊紅色'X'將從陣列中刪除ID並重新渲染列表。你必須在你身邊做一些jQuery編碼,但它並不多。
  3. 重複上述步驟直到用戶選擇了所有項目。

單擊「保存」後,只會將選定的項目提交給服務器進行處理。

+0

主要問題是創建一個用於從數千個列表中挑選幾個項目的UI,而不必每次都進行傳統的回發。性能不是問題,所以緩存在這一點上不會有任何幫助。 – chris 2010-09-27 15:56:00

+0

啊,我明白了。如果數據庫性能不是問題,那麼自動完成是一個好方法。你是說你想要自動填充動態填充下拉列表嗎?我仍然無法看到您的問題。 – 2010-09-27 16:07:18

+0

自動完成適用於拾取單個項目。我需要在最終提交之前在頁面上累積N個項目。如何將值存儲在最終提交後可以使用的頁面上的結構中?請注意,除了添加到選定列表之外,用戶應該能夠移除他們已經選擇的項目。這種情況似乎沒有一個好的用戶界面。 – chris 2010-09-27 16:12:23

相關問題