Jobs6006 Jobs6006 Ответов: 2

Autocompleteextender отсутствует необходимое свойство servicemethod


Привет..
Я новичок в этом деле. ASP.NET, я использую Visual Studio 2019, (не core, не MVC), и я кодирую в VB, как мне удобно с ним. Недавно я установил инструмент управления AJAX комплект В. 19.1. В Webform1.aspx, который я добавил текстовое поле с экстендером автозаполнения, чтобы получить данные из локальной БД. Я также добавил утилиту для элемента управления scriptmanager "Аякс". Но я получаю эту ошибку при запуске его в веб-браузерах:
AjaxControlToolkit.AutoCompleteExtender отсутствует требуемое значение свойства ServiceMethod для TextBox1_AutoCompleteExtender. Имя параметра: ServiceMethod.
Я перепробовал много учебников, но они в основном старые и больше не поддерживаются VS 2019.
Я был бы признателен вам за помощь. Ниже приведены коды ASPX и ASPX.VB:

Это файл webform1.код aspx-файл
&ЛТ;%@ страницы язык="ВБ" значение AutoEventWireup="false" - в отделенного кода="файл webform1.aspx-файл.ВБ" наследует="автозаполнения.WebForm1" %>
&ЛТ;%@ зарегистрировать Assembly="Аjaxcontroltoolkit" пространство имен="Аjaxcontroltoolkit" атрибута tagprefix="ajaxToolkit" %&ГТ;
Путь Scriptpath="Автозаполнения.asmx и"
TargetControlID="TextBox1" CompletionInterval="12" ServiceMethod="GetCompletionList"



<название>




<asp:scriptmanager id="ScriptManager1" runat="сервер">


&ЛТ;АСП:текстовое поле с ID="элемент textbox1" атрибут runat="сервер" высота="18px" ширина="251px"&ГТ;
<ajaxtoolkit:autocompleteextender id="TextBox1_AutoCompleteExtender" runat="server" behaviorid="TextBox1_AutoCompleteExtender" delimitercharacters=" servicepath=" targetcontrolid="TextBox1">






Что я уже пробовал:

Это веб-форму.aspx-файл.ВБ
Система Импорта.Данных.Поставщики sqlclient

Открытый Класс Webform1
Наследует System.Веб.Пользовательского интерфейса.Страницы

Защищенный Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Обрабатывает Меня.Load

Конец Подводной Лодки

&ЛТ;система.веб.услуги.webmethod()>
<system.web.script.services.scriptmethod()>
Публичная общая функция GetUserName(prefixUser As String) в виде строки()
Dim Users As New List(Of String)()
Dim ConStr As String = "данные Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=C:\Users\Administrator\source\repos\AutoComplete\AutoComplete\App_Data\Database1.mdf;Интегрированная безопасность=True"
Используя коробки как новое sqlconnection(обл)
Использование cmd в качестве новой команды SqlCommand("select UserName from Userdetails where UserName like '%' + @Textbox1")

cmd.параметры.AddWithValue("@Textbox1", prefixUser)
УМК.Соединение = conn
Коннектикут.Открыть()
Использование sdr в качестве SqlDataReader = cmd.Метода executereader()
Пока СДР.читать()
Пользователи.Добавить(sdr("имя пользователя").Метод toString())
Конец Пока
Конец Использования

Коннектикут.Закрывать()
Конец Использования
Конец Использования

Возвращайте Пользователей.Метод toArray()
Конечная Функция
End Класса

2 Ответов

Рейтинг:
2

Richard Deeming

Сообщение об ошибке совершенно ясно: вы не установили ServiceMethod недвижимость на территории AutoCompleteExtender.

Вам нужно установить его на имя метода службы, который вы хотите вызвать - в этом случае, GetUserName.


Рейтинг:
1

Member 14868328

Привет,
Я использую этот код для автозаполнения
здесь речь идет не о стрельбе по служебному методу


Админ/PatientAuto1.aspx-файл
&ЛТ;%@ страницы язык="в C#" AutoEventWireup значение=значение"true" CodeFile="PatientAuto1.aspx-файл.КС" наследует="Admin_PatientAuto1" %&ГТ;

&ЛТ;%@ зарегистрировать Assembly="Аjaxcontroltoolkit" пространство имен="Аjaxcontroltoolkit" атрибута tagprefix="АСП"%&ГТ;

<!DOCTYPE html>



<название>




&ЛТ;как ASP:scriptmanager при ИД="ScriptManager1" атрибут runat="сервер" enablepagemethods="правда"и GT;

<asp:autocompleteextender enabled="true" servicemethod="GetSearch" minimumprefixlength="4" completioninterval="10"
="" enablecaching="истинный" completionsetcount="10" targetcontrolid="элемент textbox1" идентификатор="AutoCompleteExtender1" атрибут runat="сервер" firstrowselected="ложно"и GT;
&ЛТ;АСП:метка идентификатор="Метка1" атрибут runat="сервер" текст="поиск по фамилии"и GT;
&ЛТ;АСП:текстовое поле с ID="элемент textbox1" атрибут runat="сервер"и GT;






Админ/PatientAuto1.aspx-файл.в CS
использование системы;
использование системы.Коллекции.Общий;
использование System.Linq;
использование системы.Сеть;
использование System.Web.UI;
используя системы.Веб.Пользовательского интерфейса.WebControls;
использование System.Data;
используя системы.Данных.Поставщики sqlclient;
использование системы.Конфигурация;
использование System.Web.Services;


общественный разделяемого класса Admin_PatientAuto1 : система.Веб.Пользовательского интерфейса.Страницы
{
охраняемых недействительными в(объект отправителя, EventArgs в электронной)
{

}
[WebMethod]
публичный статический список<string> GetSearch(строковый термин)
{
Список<строка> У listPatientNames = новый список<строка&ГТ;();

строка cs = ConfigurationManager.ConnectionStrings["CredenceDBConn"].Параметр connectionString;
using (SqlConnection con = new SqlConnection(cs))
{
SqlCommand cmd = new SqlCommand("[dbo].[spGetPatientNames_Vamsi]", кон);
УМК.CommandType = CommandType.Хранимая процедура;
cmd.параметры.Добавить(новый SqlParameter()
{
Имяпараметра = "@перспективе",
Стоимостное выражение
});
против.Открыть();
SqlDataReader rdr = cmd.Метода executereader();
а (ор.Читать())
{
список имен пациентов.Добавить(rdr["PatientName"].Метод toString());
}
}

возврат listPatientNames;
}
}


CHill60

Если у вас есть вопрос, то воспользуйтесь красной ссылкой "задать вопрос" в верхней части этой страницы. Не размещайте вопросы или комментарии в качестве решений для сообщений других участников.