Как вызвать функцию автозаполнения JQuery при нажатии текстового поля в ASP.net - PullRequest
0 голосов
/ 11 октября 2018

В моей форме у меня есть несколько элементов управления выбора и текстовых полей.Я хочу показать параметры автозаполнения в текстовом поле, получая значение из базы данных.В базе данных больше записей, поэтому я фильтрую записи, получая значения из выпадающего списка в той же форме.Я использую JQuery автозаполнения функциональности.Но это не работает.Когда я нажимаю на это текстовое поле, ничего не происходит.

 <asp:DropDownList ID="Cmb_PrdCat" runat="server" Height="38px" ToolTip= "Product category"   Width="320px" ForeColor="#666666" CssClass="RoundedBtn" TabIndex="4"  >
 </asp:DropDownList>  

<asp:DropDownList ID="Cmb_Domain" runat="server" Height="38px" Width="321px" ForeColor="#666666" CssClass="RoundedBtn" TabIndex="3" >
 </asp:DropDownList>

<asp:DropDownList ID="Cmb_Reg" runat="server" Height="38px" Width="321px" ForeColor="#666666" CssClass="RoundedBtn" TabIndex="3" >
</asp:DropDownList>      

 <asp:TextBox ID="EndClient_Txt" runat="server" Width="317px"
 Font-Names="Calibri" Font-Size="Medium" ForeColor="#666666" 
  Height="31px"  CssClass="RoundedBtn" TabIndex="8" onfocus="SearchText()"></asp:TextBox>    

Функция JQuery:

<link href="jquery/jquery-ui.css" rel="stylesheet" type="text/css" />  
<script src="jquery/jquery.min.js" type="text/javascript"></script>  
<script src="jquery/jquery-ui.min.js" type="text/javascript"></script>  

<script type="text/javascript">  

    function SearchText() {  
        $("#EndClient_Txt").autocomplete({  
            source: function(request, response) {  
                $.ajax({  
                    type: "POST",  
                    contentType: "application/json; charset=utf-8",  
                    url: "SalesOrderInput.aspx/GetClientName",                         
                    dataType: "json",  
                    success: function(data) {  
                        response(data.d);  
                    },  
                    error: function(result) {  
                        alert("No Match");  
                    }  
                });  
            }  
        });  
    }  
</script>  

На моей странице aspx.vb я закодировал как:

Public Function GetClientName() As List(Of String)

        Dim empResult As List(Of String) = New List(Of String)()

        Sql = "SELECT * FROM opportunities where PCategory ='" & Cmb_PrdCat.SelectedItem.Text & "' and Domain ='" & Cmb_Domain.SelectedItem.Text & "' and Region='" & Cmb_Reg.SelectedItem.Text & "'"

        Dim cmd = New MySqlCommand(Sql, conn1)
        reader = cmd.ExecuteReader()
        While (reader.Read())
            empResult.Add(reader("OppName").ToString())
        End While
        reader.Close()
        Return empResult       

    End Function

Когда я начинаю вводить что-то в этом текстовом поле, появляется сообщение об ошибке.

Ответы [ 2 ]

0 голосов
/ 11 октября 2018

Попробуйте добавить аннотации [PageMethod] или [WebMethod] над

Public Function GetClientName() As List(Of String)

End Function
0 голосов
/ 11 октября 2018

Вместо $("#EndClient_Txt")

Попробуйте $("#<%= EndClient_Txt.ClientID %>")

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

...