2012-02-24 137 views
1

我有一個Jquery自動完成ajax函數,其源是從後面的代碼計算出來的。不過,我使用客戶端腳本管理器獲取javascript的源代碼,但是我的函數沒有執行。調用jquery自動完成ajax函數

除此之外,我想調用該函數的AJAX代碼從後面通過

ClientScriptManager.RegisterStartupScript() 

但同樣我的功能不執行。 我的功能是:

<form id="form1" runat="server"> 
    <div> 
     <input id="Text1" type="text"/>&nbsp;&nbsp;&nbsp; 
     <input id="Text2" type="text" /><br /> 
     <br /> 
     <input id="Button2" type="button" value="button" /> 

    <script type="text/javascript"> 
    var mydataformat = [{ label: "....", value: "....", icon: "....." }, 
         { label: "....", value: ".....", icon: "....." }]; 

    $(function() { 
    $("#Text1").autocomplete({      
    minLength: 0,      
    source: JSVar,      
    focus: function (event, ui) 
    { 
    $("#Text1").val(ui.item.label);       
    return false;      
    }})      
    .data("autocomplete")._renderItem = function (ul, item) {       
    return $("<li></li>") 
    .data("item.autocomplete", item)        
    .append("<a><img src='" + item.icon + "' width='32' height='32' /> " + item.label + "</a>")        
    .appendTo(ul);      
     }; 
    }); 

</script> 
+0

你的函數在jquery的''''(function(){//是你的代碼嗎?});' – Marc 2012-02-24 04:56:51

+0

是的。但不幸的是,我無法將從數據庫查詢計算出的數據添加到此jquery函數的源代碼中。 – vini 2012-02-24 05:08:31

+0

如果你把'source:mydataformat'(當然有一些有效的值),當你在文本框中的列表中鍵入某些東西時它就起作用。 – 2012-02-24 17:01:27

回答

3

你必須設置源時,你的數據已經加載喜歡提到here

$("#Text1").autocomplete("option", "source", ["your", "loaded", "data"]); 

...或更好的初始化你自動完成,當你計算的數據準備好,不早。

+0

感謝您的回覆,但這裏輸入的數據是動態的,並且具有包含關鍵字標籤,值和圖標的格式。 – vini 2012-02-24 05:21:40

+0

我該怎麼做?數據準備就緒時初始化自動完成? – vini 2012-02-24 05:22:32

+0

什麼時候你的數據準備好了?你的js var何時被填充?必須有一個地方可以填寫/設置'JSVar'。 **之後**,你必須設置自動完成代碼。 – Marc 2012-02-24 05:50:23

0

看看jQueryUI網站上的Custom Data sample,它似乎涵蓋了你想要的一切。它使用標籤,值,圖標等。

剩下的一塊是等到數據加載完成之後再初始化它。

+0

我使用相同的。而對於等待,我已經在代碼隱藏後在我的數據庫查詢後註冊了整個javascript函數。但似乎並不能很好地執行。有什麼建議麼? – vini 2012-02-24 14:48:35