2012-02-24 2 views
1

У меня есть функция автозаполнения JQuery ajax, источник которой вычисляется из кода позади. однако я получаю источник в javascript, используя диспетчер сценариев клиента, но моя функция не выполняется.Вызов функции JQuery автозаполнения 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 onready как '$ (function() {// является вашим кодом здесь?});' – Marc

+0

да, это так. но, к сожалению, я не могу добавить свои данные, вычисленные из запроса базы данных, к источнику этой функции jquery. – vini

+0

, если вы поместите 'source: mydataformat,' (с некоторыми допустимыми значениями, конечно), он работает, когда вы вводите что-то из этого списка в текстовое поле. –

ответ

3

Вы должны установить источник, когда данные были загружены, как упоминалось here:

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

... или лучше инициализировать автозаполнения, когда ваш вычисленные данные готовы, Не ранее.

+0

спасибо за ответ, но данные, которые нужно ввести здесь, являются динамическими и имеют формат с меткой, значком и значком ключевых слов. – vini

+0

как я могу это сделать? инициализировать автозаполнение, когда данные готовы? – vini

+0

Когда ваши данные готовы? Когда ваш js var будет заполнен? Должно быть место, где вы заполняете/устанавливаете 'JSVar'. И ** после **, что вы должны установить свой код автозаполнения. – Marc

0

Посмотрите на сайт Custom Data sample на сайте jQueryUI, он, кажется, охватывает все, что вы хотите. Он использует ярлык, значение, значок и т. Д.

Единственная оставшаяся часть - подождать, пока ваши данные не будут загружены до ее инициализации.

+0

i hv использовал то же самое. И для ожидания я уже регистрирую всю функцию javascript после запроса базы данных в коде. но он, похоже, не работает хорошо. Какие-либо предложения? – vini

Смежные вопросы