Jquery 在文本框中显示来自数据库的建议单击

Jquery 在文本框中显示来自数据库的建议单击,jquery,asp.net,ajax,Jquery,Asp.net,Ajax,我想在用户开始在文本框中输入文本时显示对文本的建议。 这是我的文本框 <div class="form"> <asp:TextBox runat="server" name="name" CssClass ="input-text" ID="txtschoolCode" ></asp:TextBox> </div> 这是我的ajax函数 <script type="text/ja

我想在用户开始在文本框中输入文本时显示对文本的建议。 这是我的文本框

 <div class="form">
     <asp:TextBox runat="server" name="name"  
        CssClass ="input-text" ID="txtschoolCode" ></asp:TextBox>
 </div>

这是我的ajax函数

            <script type="text/javascript">
    $(function () {
        $('#<%=txtschoolCode.ClientID%>').autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                url: "ChangeRequestForm.aspx/GetData",
                data: "{ 'pre':'" + request.term + "'}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    response($.map(data.d, function (item) {
                        return {
                            value: item
                        }
                    }))
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Error");
                }
            });
        }
    });
});
         public static List<object> GetData(string pre)
    {
          List<object> obj = new List<object>();

           ActivityLogDAL getAutoData = new ActivityLogDAL();
           DataTable empResult = getAutoData.getAutoLoadData();
         // getting data in empResult
           foreach (DataRow dr in empResult.Rows)
           {

               obj.Add(dr);
           }
       // have values in obj
           return obj;

    }    

$(函数(){
$('#')。自动完成({
来源:功能(请求、响应){
$.ajax({
类型:“POST”,
url:“ChangeRequestForm.aspx/GetData”,
数据:“{'pre':'”+request.term+“}”,
数据类型:“json”,
contentType:“应用程序/json;字符集=utf-8”,
成功:功能(数据){
响应($.map)(数据.d,函数(项){
返回{
价值:项目
}
}))
},
错误:函数(XMLHttpRequest、textStatus、errorshown){
警报(“错误”);
}
});
}
});
});

这是我的代码隐藏函数

            <script type="text/javascript">
    $(function () {
        $('#<%=txtschoolCode.ClientID%>').autocomplete({
        source: function (request, response) {
            $.ajax({
                type: "POST",
                url: "ChangeRequestForm.aspx/GetData",
                data: "{ 'pre':'" + request.term + "'}",
                dataType: "json",
                contentType: "application/json; charset=utf-8",
                success: function (data) {
                    response($.map(data.d, function (item) {
                        return {
                            value: item
                        }
                    }))
                },
                error: function (XMLHttpRequest, textStatus, errorThrown) {
                    alert("Error");
                }
            });
        }
    });
});
         public static List<object> GetData(string pre)
    {
          List<object> obj = new List<object>();

           ActivityLogDAL getAutoData = new ActivityLogDAL();
           DataTable empResult = getAutoData.getAutoLoadData();
         // getting data in empResult
           foreach (DataRow dr in empResult.Rows)
           {

               obj.Add(dr);
           }
       // have values in obj
           return obj;

    }    
公共静态列表GetData(字符串前置)
{
List obj=新列表();
ActivityLogDAL getAutoData=新ActivityLogDAL();
DataTable empResult=getAutoData.GetAutoLaddata();
//在结果中获取数据
foreach(empResult.Rows中的数据行dr)
{
对象添加(dr);
}
//在obj中有值
返回obj;
}    
它给了我警告(“错误”);
代码有什么问题

首先,您应该了解如何调试ajax请求,以便获得真正的错误。查看浏览器工具中的控制台和网络选项卡。从服务器获取实际的HTTP代码和响应以告诉您错误。在JS中,此信息也可作为错误回调中XMLHttpRequest对象的一部分使用。请参阅“jqXHR对象”一节中的内容,了解它公开了哪些属性。然后您可以向控制台发出警报或将这些属性记录到控制台中,以提供更多信息。e、 g.
console.log(XMLHttpRequest.status、XMLHttpRequest.statusText、XMLHttpRequest.status、XMLHttpRequest.responseText)可能是一组有用的数据。如果服务器只是返回一个“500内部服务器错误”,那么错误消息背后的真正错误应该被记录在Windows事件查看器的服务器端。还有一点建议,不要手动生成数据字符串,它太容易出错<代码>数据:JSON.stringify({“pre”:request.term})
是一种更好的方法。实际上,这可能与您的问题有关,具体取决于您从服务器收到的错误。