Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用jquery在asp.net中自动完成_Javascript_C#_Jquery_Asp.net_Sql Server - Fatal编程技术网

Javascript 使用jquery在asp.net中自动完成

Javascript 使用jquery在asp.net中自动完成,javascript,c#,jquery,asp.net,sql-server,Javascript,C#,Jquery,Asp.net,Sql Server,在这里,我尝试在asp.net中使用jquery自动完成,我尝试从sql数据源检索数据,并将其用于自动获取。当我运行代码时,自动完成没有工作 我的代码 <script src="jquery.min.js" type="text/javascript"></script> <script src="jquery-ui.min.js" type="text/javascript"></script> <script type="

在这里,我尝试在asp.net中使用jquery自动完成,我尝试从sql数据源检索数据,并将其用于自动获取。当我运行代码时,自动完成没有工作

我的代码

<script src="jquery.min.js" type="text/javascript"></script>
    <script src="jquery-ui.min.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(function () {
            SearchText();
        });
        function SearchText() {
            $(".autosuggest").autocomplete({
                source: function (request, response) {
                    $.ajax({
                        type: "POST",
                        contentType: "application/json; charset=utf-8",
                        url: "Inventory.aspx/GetAutoCompleteData",
                        data: "{'username':'" + document.getElementById('txtPartno').value + "'}",
                        dataType: "json",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert("Error");
                        }
                    });
                }
            });
        }
</script>
文本框字段

<asp:TextBox ID="txtPartno" CssClass="Textboxbase" class="autosuggest" runat="server"></asp:TextBox>
还有我的c代码

protected void Page_Load(object sender, EventArgs e)
{

}
[WebMethod]

public static List<string> GetAutoCompleteData(string username)
{
    List<string> result = new List<string>();
    using (SqlConnection con = new SqlConnection("Data Source=MYPC-GN\\KASPLDB;Integrated Security=False;User ID=sa;Password=*****;Connect Timeout=15;Encrypt=False;TrustServerCertificate=False"))
    {
        using (SqlCommand cmd = new SqlCommand("select DISTINCT PART_NO from Inventory where UserName LIKE '%'+@SearchText+'%'", con))
        {
            con.Open();
            cmd.Parameters.AddWithValue("@SearchText", username);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                result.Add(dr["UserName"].ToString());
            }
            return result;
        }
    }
 }

我看到的一个问题是,您的javascript调用有点错误。无法获取由asp自身使用document.getElementById'txtPartNo'创建的textbox的值。要获取此值,您必须获取它的客户端id,您可以使用- txtPartNo.ClientID所以最终这将成为-

data: "{'username':'" + document.getElementById('<%= txtPartno.ClientID %>').value + "'}",

如果您不这样做,那么您将无法获得该文本框的实际值,并且undefined将被发送到不会返回任何内容的C方法。

首先,您应该检查是否调用了JavaScript函数。 如果它被调用,那么你应该检查url是否正确。 您可以登录开发者工具/firebug等,查看您发送的请求。

我的操作如下:

ajaxCallSetting.js

var ajaxCallSetting=功能元素、消息、请求{ var baseInfo={ 基本URL:http://localhost:10266/ }; var buildUrl=函数{ 返回baseInfo.baseUrl+消息; }; var callApi=functionrequest,response{ $.ajax{ 类型:POST,, contentType:application/json;字符集=utf-8, url:buildUrl, 数据:JSON.stringifyreq, 数据类型:json }.successfunctiondata{ 回答数据d; }; }; 返回{ init:函数{ $element.autocomplete{ 资料来源:callApi }; } };
}; 我认为你的文本框连接不好。试试这个:

<asp:TextBox ID="txtPartno" CssClass="Textboxbase autosuggest" runat="server"></asp:TextBox>

你得到的错误是什么?没有错误,但没有按预期检索数据。你的GetAutoCompletedData是否被命中?似乎没有,有什么方法可以检查Debugger吗?你能通过放置断点来确保你在C中描述的函数被命中吗?试过了,伙计,它仍然没有检索数据,,,能否添加一个ScriptMethodResponseFormat=ResponseFormat.Json的属性?
$(".autosuggest").autocomplete({
            source: function (request, response) {
                $.ajax({
                    type: "POST",
                    contentType: "application/json; charset=utf-8",
                    url: "Inventory.aspx/GetAutoCompleteData",
                    data: "{'username':'" + request.term + "'}",
                    dataType: "json",
                    success: function (data) {
                        response(data.d);
                    },
                    error: function (result) {
                        alert("Error");
                    }
                });
            }
        });