2012-07-13 63 views
0

在WebUserControl中,我有一個輸入元素,我希望它使用Jquery Autocomplete顯示值列表。它根本不工作。Jquery自動完成和UpdatePanel

這是用於填充列表中的腳本:

$(document).ready(function() {  
    var availableTags = [ 
      "ActionScript", 
      "AppleScript", 
      "Other one" 
      ]; 
    $("#listaCecos").autocomplete({ 
     source: availableTags 
    }); 
}); 

我配合建立一個斷點,並發現:

  • 當.autocomplete線被執行,$("#listaCecos")似乎uninitiallized。在控制檯它顯示了以下內容:在頁面完全加載[]
  • 後,$("#listaCecos")顯示正確[<input id=​"listaCecos" name=​"listaCecos">​]
  • 一旦頁面被加載,我可以在控制檯上執行.automcomplete代碼(上面的代碼塊)的元件並且輸入開始工作正常。

所以,我想這是行不通的,因爲當.autocomplete腳本被執行時,輸入元素沒有被正確加載(它在webusrcontrol中並且在初始頁面加載時不可見) 。

請幫助我確定應該在什麼位置和什麼時候放置自動填充設置腳本,以便輸入得到正確填充。

回答

3

我設法解決它。輸入位於UpdatePanel內部,它將替換其內容,以便自動完成配置丟失。

的解決方案是重新配置每個END_REQUEST自動完成功能:

$(document).ready(function() { 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler); 

    function EndRequestHandler(sender, args) { 
     var availableTags = [ 
      "ActionScript", 
      "AppleScript", 
      "ceshar" 
      ]; 
     $(".listaCecos").autocomplete({ 
      source: availableTags 
     }); 
    } 
});