Autocomplete jquery not working?

廉价感情. 提交于 2019-12-10 21:50:31

问题


I have a text box, Inside I want it to auto complete. The data for the auto complete is going to be given through the database.

This is my Jquery:

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

This is what I have put in autocompletetagdata for now:

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']";     
    } 

What am i doing wrong?

EDIT:

 <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>

When you go to autocompletetagdata..aspx in the browser you get back on the screen...

SC052 SC053 SC055 SC060 SC061 SC062 SC063 SG011 SG014 SG015

Firebug also does show these items being sent back in the response, but nothing happens to the text box


回答1:


This is Jquery Code :

$("#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
    }
});

call you ajax request and return JSON data something like this :

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

for return somthing like that you must define a class like this :

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;
        }
    }
}

so it just enough to return a list of this class objects (List<Autocomplete>).So create this list and fill it by your sqlcommand and then return it as response of your XMLHTTPRequest

I tested it.It works great man

Good luck.Foroughi




回答2:


Well I'm not sure if this works like I think but: autocompletetagdata.aspx may be showing data, but when you do source: data, data is not ready, I mean it dont contain data. I solve similiar problem by filling source in callback function (here, callback of autocompletetagdata.aspx).




回答3:


I have problem with autocomplete. I reached here because you include qtip. Those two libs (jquery/autocomplete and qtip) have problems when used both.



来源:https://stackoverflow.com/questions/8878878/autocomplete-jquery-not-working

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!