2008-09-02 20 views
0

好吧,所以我想要一個自動完成下拉鍊接按鈕作爲選擇。因此,用戶將光標置於「文本框」中,並與選項列表進行匹配。他們可以開始打字以縮小列表的範圍,或者選擇列表中的一個選項。只要他們點擊(或按下輸入),該鏈接的數據集將被選擇過濾。自動完成下拉與Linkbuttons - 或「AJAX不見了」

好的,這是否就像在一個下拉列表中包裝AJAX自動完成一樣簡單?沒有? (請?)

回答

0

這個小部件可以由三個項目組成:一個文本輸入,按鈕輸入和一個無序列表來保存結果。上示出

__________ _ 
|__________||v|__    <-- text and button 
    |    |   <-- ul (styled to appear relative to text input) 
    |    | 
    |    | 
    |______________| 

UL:

  • 文本輸入的「使用keyUp」事件(如果值爲非空)的按鈕輸入的
  • 「點擊」事件(如果當前不可見)

UL隱藏在:

  • '點擊' 前夕按鈕輸入的NT(如果當前可見)

當該UI被顯示或文本輸入的「使用keyUp」事件被觸發AJAX調用服務器的需求列表項

  • 「click」事件以更新列表。

    成功的結果應該放在ul中。當創建列表項時,他們應該有一個附加在它們上的'click'事件,它設置文本輸入值並隱藏ul(可能需要在li中添加一個鏈接來附加事件)。

    最難的部分實際上是CSS。 JavaScript很簡單,特別是使用支持多種瀏覽器的原型庫。

    您可能需要支持某些項目的ID,因此您可以爲每個帶有ID的列表項添加一些隱藏輸入項,並在文本輸入旁邊存儲所選項目ID。

  • 0

    您必須處理下拉列表中的OnSelectedIndexChanged事件,以根據用戶選擇重新綁定您的數據集。如果你想過濾發生異步回發,包裝數據集(或我假設的數據網格)和你的下拉在UpdatePanel。無論如何,這是一種方法。

    -1

    在我看來,你不應該爲此使用AJAX。

    這裏的原因:

    (1)在重點:一切,他可以選擇的選項顯示在下拉列表中。這意味着所有可能的選項都已發送給客戶端。 (2)如果用戶輸入了某些內容,下拉菜單中的條目數將被過濾以匹配。這很容易在客戶端完成。在這個時候成爲ajax'y並回到服務器只會減慢速度。

    phpguru。組織有一個控制是「幾乎完全」你需要什麼:

    http://www.phpguru.org/static/AutoComplete.html#demo

    它從你所需要的,因爲它顯示的下拉略有不同,而不是雙擊焦點。這應該很容易修改。

    我希望這會有所幫助。

    0

    我不完全確定你想要什麼,但Ra-Ajax AutoCompleter肯定支持自己內部有「控件」。您可以在Stacked的搜索框中看到,實際上(右上角)我們正在使用鏈接。但是,如果您願意,這也可以是LinkBut​​tons ...

    聲明;我與Ra-Ajax合作...