Автозаполнение jquery не работает? - PullRequest
3 голосов
/ 16 января 2012

У меня есть текстовое поле, внутри я хочу его автозаполнение.Данные для автозаполнения будут передаваться через базу данных.

Это мой Jquery:

 var data = "autocompletetagdata.aspx"
    $("#item").autocomplete({
        source: data
    });

Это то, что я сейчас добавил в autocompletetagdata:

protected void Page_Load(object sender, EventArgs e)
{
    string term = Request.QueryString["term"];
   SqlConnection myConnection = new SqlConnection(connStr);
   myConnection.Open();
   string SQL = ("select Top 10 LTRIM(RTRIM(PGPRDC)) As PGPRDC FROM SROPRG SROPRG");
   SqlCommand myCommand = new SqlCommand(SQL, myConnection);
   StringBuilder sb = new StringBuilder();
   try
      {
        SqlDataReader reader = myCommand.ExecuteReader();
        if (reader.HasRows)
        {
           while (reader.Read())
           {
             sb.Append(reader.GetString(0))
                           .Append(Environment.NewLine);
            }
        }
        reader.Close();
      }
   catch (Exception ex)
   {
      myConnection.Close();
   }
   myConnection.Close();
       Response.Write(sb.ToString());  
//return "['word', 'hello', 'work', 'oi', 'hey']";     
    } 

Что я делаю не так?

РЕДАКТИРОВАТЬ:

 <script type="text/javascript" src="/scripts/js/jquery.scrollTo-min.js"></script>
<script type="text/javascript" src="/scripts/js/jquery.flash.min.js"></script>
<script type="text/javascript" src="/scripts/js/jquery.sifr.min.js"></script>
<script type="text/javascript" src="/scripts/js/global.js"></script>
<script type="text/javascript" src="/scripts/js/jquery-ui-1.8.17.custom.min.js"></script>
<script type="text/javascript" src="/scripts/js/orderstatus.js"></script>    
<script type="text/javascript" src="/scripts/js/jquery.ui.core.js"></script>
<script type="text/javascript" src="/scripts/js/jquery.ui.widget.js"></script>
<script type="text/javascript" src="/scripts/js/jquery.ui.datepicker.js"></script>
<script type="text/javascript" src="/scripts/js/jquery.qtip-1.0.0-rc3.min.js"></script>
<script type="text/javascript" src="/scripts/js/json_parse.js"></script>

Когда вы переходите к autocompletetagdata..aspx в браузере, вы возвращаетесь на экран ...

SC052 SC053 SC055 SC060 SC061 SC062 SC063 SG011 SG014 SG015

Firebug также показывает, что эти элементы отправляются обратно в ответ, но с текстовым полем ничего не происходит

Ответы [ 3 ]

0 голосов
/ 16 января 2012

Это код Jquery:

$("#txt1").autocomplete({
    source: function (request, response){
        $.ajax({
            type: "POST",                        
            url: "YourAddress",           
            contentType: "application/json; charset=utf-8",
            dataType: "json",                                                    
            success: function (data) {
            response($.map(data.d, function (item) {
                return {
                    id: item.Value,
                    value: item.Text
                }
            }))
        }
        });
    },
    select: function (event, ui) {
        $("#hdnId").val(ui.item.id);//Put Id in a hidden field
    }
});

, который вызывает ваш запрос ajax и возвращает данные в формате JSON примерно так:

[{"Value":val1,"Text":"text1"},
{"Value":val2,"Text":"text2"}]

, для возврата чего-то подобного вы должны определить такой класс:

public class Autocomplete
{

    private int val;
    private string text;

    public int Value
    {
        get
        {
            return val;
        }
        set
        {

            val = value;
        }
    }

    public string Text
    {
        get
        {
            return text;
        }
        set
        {

            text = value;
        }
    }
}

, поэтому достаточно просто вернуть список объектов этого класса (List<Autocomplete>). Поэтому создайте этот список и заполните его командой sql, а затем верните в ответ на ваш XMLHTTPRequest

Я проверил это. Это прекрасно работает человек

Удачи. Foroughi

0 голосов
/ 25 ноября 2013

У меня проблема с автозаполнением.Я достиг здесь, потому что вы включаете qtip.Эти две библиотеки (jquery / autocomplete и qtip) имеют проблемы при использовании обоих.

0 голосов
/ 16 января 2012

Ну, я не уверен, что это работает так, как я думаю, но: autocompletetagdata.aspx может показывать данные, но когда вы делаете источник: данные , данные не готовы, я имею в виду, что они не содержат данных. Подобную проблему я решаю, заполнив source в функции обратного вызова (здесь обратный вызов autocompletetagdata.aspx ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...