使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender實現自動完成功能(上)

來源:互聯網
上載者:User
作者:Dflying Chen (http://dflying.cnblogs.com/)

請同時參考:使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender實現自動完成功能(下)

相信對AJAX略有瞭解的朋友都知道自動完成功能(如果您還不知道,請嘗試一下Google Suggest),甚至好多朋友就是看到它帶來的令人眩目的功能才對AJAX感興趣,並開始學習的。ASP.NET Atlas同樣提供了內建的,非常簡單易用的自動完成支援。

ASP.NET Atlas提供兩種方法讓我們在程式中使用自動完成,它們提供相同的功能,但有各自的的特點與適用範圍:

  1. 用戶端AutoComplete Behavior:完全使用用戶端指令碼實現。由於不涉及伺服器端控制項解析,較節省伺服器資源,而且可以方便的與其他Atlas用戶端控制項無縫整合,但相對於初學者,學習以及使用的難度偏大,且在開發中沒有智能感知的支援,也較難以調適。它適合熟悉Atlas的開發人員從零開始建立“純粹”的AJAX程式。
  2. 伺服器端AutoComplete Extender:使用伺服器端控制項實現。由於使用了ASP.NET控制項模型,它自然得到設計期IDE的支援以及編譯期檢查,熟悉ASP.NET的開發人員可以很方便的上手。但對於用戶端實現,它的效率較低,並不易於與其他用戶端Atlas控制項整合互動。它較適合在很小的改變中為現有程式添加“部分”的AJAX行為。

用戶端AutoComplete Behavior繼承於Sys.UI.Behavior(關於Sys.UI.Behavior,可以參考:在ASP.NET Atlas中建立自訂的Behavior)。AutoComplete Behavior有如下屬性:

  1. serviceURL:提供自動完成功能的伺服器端Web Service的路徑。
  2. serviceMethod:提供自動完成功能的伺服器端的Web Method名稱,該Web Method應該有類似的簽名:public String[] GetSuggestions(string prefixText, int count)。其中prefixText為用戶端傳入的當前輸入的字串,count為返回的提示列表中的最大條目數,同時它應該返回一個string數組,表示提示列表。
  3. minimumPrefixLength:開始提供自動完成列表的文字框內最少的輸入字元數量。預設值為3。如果使用者剛剛輸入一兩個字母,您就迫不及待的提供給他一長串的列表,這既沒什麼意義,也會極大浪費伺服器與網路資源。只有使用者輸入了等於或超過某個數目(由本屬性設定)時,給出的建議才是有價值的,Atlas也才會查詢服務器端的相應方法並顯示給使用者提示列表。
  4. completionInterval:每次查詢背景間隔時間,預設值是1000(毫秒)。如果該值太大,則給使用者帶來程式反應遲鈍的印象,如果太小,則加重伺服器與網路負擔。一般來講,500-2000是一個比較合理的值。
  5. completionList:顯示提示列表的DOM元素。如果不指定,Atlas會自動在相關的TextBox下面建立一個DIV來顯示。一般情況下我們無須指定這個屬性。
  6. completionSetCount:提示列表中的最大項目數,預設值為10。

伺服器端AutoComplete Extender繼承於ExtenderControl,類似的,有如下屬性:

  1. ServicePath:類似用戶端AutoComplete Behavior的serviceURL屬性。
  2. ServiceMethod:類似用戶端AutoComplete Behavior的serviceMethod屬性。
  3. DropDownPanelID:類似用戶端AutoComplete Behavior的completionList屬性,不過這裡指定的是伺服器端<asp:Panel />的ID。一般情況下我們無須指定這個屬性。
  4. MinimumPrefixLength:類似用戶端AutoComplete Behavior的minimumPrefixLength屬性。

在使用伺服器端AutoComplete Extender時,您需要為其至少指定一個AutoCompleteProperties子控制項。AutoCompleteProperties控制項用來指定為某個特定的TextBox添加自動完成功能,它同樣提供一些屬性,其中包含了與上述AutoComplete Extender相同的ServicePathServiceMethodMinimumPrefixLength三個屬性。如果您在AutoComplete Extender和AutoCompleteProperties中都設定了上述某種屬性,那麼設定在AutoCompleteProperties中的會覆蓋設定在AutoComplete Extender中的。除此之外,AutoCompleteProperties還提供如下屬性:

  1. Enabled:是否啟用自動完成功能,您應該將其置為true以啟用自動完成。預設值為false。
  2. TargetControlID:指定該自動完成功能將應用到哪個TextBox上,應設定為伺服器端TextBox的ID。

註:今天實在有點累了,本來要寫的樣本程式明天再來完成吧……抱歉
注2:樣本程式已經完成:使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender實現自動完成功能(下)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.