2013-05-16 3 views
0

Я применил это на текст типа ввода, но он не работает. Мне нужно руководствоваться, чтобы показать, где я ошибаюсь. Это код Javascript и не работает:autocomplete не работает, нужна помощь

$(document).ready(function() { 
    $('#reasondescriptiontxtbox').autocomplete({ 
     source: function (request, response) { 
      $.ajax({ 
       type: "POST", 
       contentType: "application/json; charset=utf-8", 
       url: "Default.aspx/getReason", 
       data: "{'keywords':'" + request.term + "'}", 
       dataType: "json", 
       async: true, 
       success: function (data) { 
        response(data.d); 
       }, 
       error: function (result) { 
        //alert("Error"); 
       } 
      }); 
     }, 
     minLength: 2 
    }); 
}); 

код позади:

[WebMethod] 
public static IList<string> getReason(string keywords) 
{ 
    int count = 0; 
    IList<string> result = new List<string>(); 
    string constr 
     = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["MyConnectionString"].ConnectionString; 
    SqlConnection con1 = new SqlConnection(constr); 
    SqlCommand cmd1 = con1.CreateCommand(); 
    cmd1.CommandText = "select distinct Code_Description from CODE_DESCRIPTION_277 where Code_Description '%" + keywords + "%'"; 

    try 
    { 
     con1.Open(); 
     SqlDataReader dr = cmd1.ExecuteReader(); 

     while (dr.Read()) 
     { 
      count++; 
      result.Add(dr["Code_Description"].ToString()); 

      if (count == 100) 
       break; 
     } 

     con1.Close(); 

     return result; 
    } 
    catch 
    { 
     return null; 
    } 
} 

Должен ли я добавить какой-то JQuery файл?

+1

Что не работает? Ваш веб-метод не называется? Вы получаете сообщение об ошибке? –

+0

нет, я не получаю никаких ошибок, но автозаполнение не работает. Я не знаю, где проблема, поэтому я отправил весь код –

+0

вызывается метод 'getReason'? возвращает ли он что-либо иное, кроме «null»? – Yoav

ответ

0

я добавил, как ключевое слово, это была также проблема и во-вторых, я изменил это: $('#reasondescriptiontxtbox').autocomplete( к этому: $('input[id$=reasondescriptiontxtbox]').autocomplete( и теперь он работает прекрасно

2

В вашем коде SQL отсутствует like в where Code_Description '%" + keywords + "%'", может это быть причиной?

Вы не получите никаких результатов и, вероятно, исключение SQL, которое маскируется вашим Catch.

Попробуйте изменить эту строку в

cmd1.CommandText = "select distinct Code_Description from CODE_DESCRIPTION_277 where Code_Description like '%" + keywords + "%'"; 
+0

thanx Клоры, которые я добавил как ключевое слово, также были проблемой, а во-вторых, я изменил это: $ ('# reasondescriptiontxtbox'). Autocomplete (to this: $ ('input [id $ = reasondescriptiontxtbox]'). Autocomplete (и теперь это отлично работает –

1

Если вы используете мастер страницу, то ваш код Javascript должен быть, как это $ ('# <% = textbox1.ClientID%>'). Автозаполнения ({

и убедитесь, что вы включили любую версию jquery.js

+0

thanx я изменил это: $ ('# reasondescriptiontxtbox'). autocomplete (к этому: $ ('input [id $ = reasondescriptiontxtbox]'). autocomplete (и теперь он отлично работает –

+0

Эй, это как ответ так что другие могут знать об этом. –

0

Я бы организовать модульные тесты в проект, так что вы можете проверить getReason в изоляции, издевались над входом. Затем вы можете разделить и conque r, чтобы определить, где проблема. Если проблема находится на стороне клиента, вам необходимо прикрепить отладчик к браузеру и установить контрольную точку в обработчике (-ах) для проверки местных жителей и потока выполнения.

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