Как заставить jquery автозаполнение работать из usercontrol с помощью веб-сервиса - PullRequest
0 голосов
/ 13 апреля 2020

У меня есть jQuery для извлечения записи автозаполнения при вводе в текстовое поле, эти данные выбираются с помощью веб-службы. Теперь все работает нормально при использовании на странице Default.aspx, но когда я использую этот процесс из UserControl.ascx и вызываю его на странице default.aspx, он не возвращает данные автозаполнения (результат).
WebService. код asmx: [WebMethod]

public List<string> GetAutoCompleteData(string username)
{
    string conString = ConfigurationManager.ConnectionStrings["MYCONNECTION"].ConnectionString;
    List<string> result = new List<string>();

    using (SqlConnection con = new SqlConnection(conString))
    {
        using (SqlCommand cmd = new SqlCommand("select DISTINCT SSName from SSRecord where SSName LIKE '%'+@SearchText+'%'", con))
        {
            con.Open();
            cmd.Parameters.AddWithValue("@SearchText", username);
            SqlDataReader dr = cmd.ExecuteReader();
            while (dr.Read())
            {
                result.Add(dr["SSName "].ToString());
            }
            return result;
        }
    }
}

код UserControl.ascx:

    <script src="jquery-1.11.2.js" type="text/javascript"></script>
    <link href="jquery-ui.css" rel="stylesheet" />
    <script src="jquery-ui.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: "WebService.asmx/GetAutoCompleteData",
                        data: "{'username':'" + document.getElementById('txtSearch').value + "'}",
                        dataType: "json",
                        success: function (data) {
                            response(data.d);
                        },
                        error: function (result) {
                            alert("Error");
                        }
                    });
                }
            }); 
        }
    </script>

<label for="tbAuto">Enter UserName: </label>   
<asp:TextBox ID="txtSearch" runat="server" class="autosuggest"></asp:TextBox>

код Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ Register Src="~/UserControl.ascx" TagPrefix="uc1" TagName="UserControl" %>
<body>
    <form id="form1" runat="server">
        <div>
            <uc1: UserControl  runat="server" ID="UserControl"/> 
        </div>
    </form>
</body>

1 Ответ

0 голосов
/ 14 апреля 2020

Я получил аналогичный пост по ссылке ниже. Поэтому после некоторой модификации, упомянутой в ссылке, я могу разобраться.

https://www.aspsnippets.com/Articles/Implement-jQuery-Autocomplete-using-Web-Service-in-ASP.Net.aspx

...