Создание пользовательского компонента на Blazor ServerC#

Место общения программистов C#
Ответить
Anonymous
 Создание пользовательского компонента на Blazor Server

Сообщение Anonymous »

Я хочу создать компонент, который позволит пользователям **автозаполнять ** список истцов, а также позволит им **создавать **нового истца, если **не найдено ** результатов. Я знаю, что в библиотеках пользовательского интерфейса уже существуют компоненты автозаполнения, но я хочу написать свой собственный компонент.
@page "/plaintiff-autocomplete"
@using System.Collections.Generic



@if (suggestions.Count > 0)
{
@foreach (var suggestion in suggestions)
{
@suggestion
}
}
else
{
No Results
}



@if (showModal)
{


×
Add Plaintiff

Plaintiff Name:

Add



}

@code {
private string plaintiffInput = "";
private List plaintiffs = new List { "John Doe", "Jane Smith", "David Johnson", "Emily Brown" };
private List suggestions = new List();
private bool showModal = false;
private string newPlaintiff = "";

private void SelectSuggestion(string suggestion)
{
plaintiffInput = suggestion;
suggestions.Clear();
}

private void ShowModal()
{
showModal = true;
}

private void CloseModal()
{
showModal = false;
}

private void AddPlaintiff()
{
if (!string.IsNullOrWhiteSpace(newPlaintiff))
{
plaintiffs.Add(newPlaintiff);
plaintiffInput = newPlaintiff;
showModal = false;
newPlaintiff = "";
}
}

private void UpdateSuggestions()
{
suggestions = plaintiffs.Where(p => p.ToLower().Contains(plaintiffInput.ToLower())).ToList();
}
}


Я попробовал создать свой собственный компонент, весь код находится в файле .razor. Я не совсем понимаю, почему мои привязки не работают. Пока я печатаю что-то, приложение не загружает никаких результатов, оно просто говорит «нет результатов». Раньше у меня был код, в котором автозаполнение/фильтрация работала, но я немного изменил его, а затем он остановился.
Кроме того, нажатие на «нет результатов» ничего не дает. Я думал, что подключил эту функциональность правильно, но думаю, что нет.
РЕДАКТИРОВАТЬ: Главное работает, но не уверен, почему мое модальное окно НЕ всплывает, когда я нажимаю кнопку «Добавить нового истца»?




@foreach (var suggestion in plaintiffs)
{

}


Add New Plaintiff
@if (showModal)
{




Add Plaintiff
×


Plaintiff Name:

Add





}

@code {
private string plaintiffInput = "";
private List plaintiffs = new List { "John Doe", "Jane Smith", "David Johnson", "Emily Brown" };
private List suggestions = new List();
private bool showModal = false;
private string newPlaintiff = "";

private void SelectSuggestion(string suggestion)
{
plaintiffInput = suggestion;
suggestions.Clear();
}

private void ShowModal()
{
showModal = true;
}

private void CloseModal()
{
showModal = false;
}

private void AddPlaintiff()
{
if (!string.IsNullOrWhiteSpace(newPlaintiff))
{
plaintiffs.Add(newPlaintiff);
plaintiffInput = newPlaintiff;
showModal = false;
newPlaintiff = "";
}
}

private Task OnAfter()
{
suggestions = plaintiffs.Where(p => p.ToLower().Contains(plaintiffInput.ToLower())).ToList();
return Task.CompletedTask;
}
}


Подробнее здесь: https://stackoverflow.com/questions/784 ... zor-server
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»