Blazor Список строк Входная привязка - PullRequest
2 голосов
/ 27 октября 2019

Я пытаюсь отобразить список строк и хочу, чтобы пользователь мог редактировать список для внесения изменений в объект, но при просмотре списка после изменения полей ввода изменения не были внесены.

Как связать список строк?

 @foreach (var message in UserMessageService.GetSomeData())
    {
    <tr>
        <td><input type="text" bind="@message.Username" value="@message.Username" onblur="SaveMessages"/></td>
        <td><input type="text" bind="@message.Message" value="@message.Message" onblur="SaveMessages"/></td>
    </tr>
    }

Ответы [ 2 ]

3 голосов
/ 27 октября 2019

Используйте правильный синтаксис Blazor:

<input
type="text" @bind="@message.Message"/>

Если вам нужно выполнить функцию размытия:

<input value="@message.Message"
     @onchange="@((ChangeEventArgs __e) =>  
     { message.Message  = __e.Value.ToString());
     SaveMessages(); })" />

Дополнительная информация: https://docs.microsoft.com/en-us/aspnet/core/blazor/components?view=aspnetcore-3.0#data-binding

0 голосов
/ 27 октября 2019

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

Я просто добавил локальную переменную ниже

        @foreach (var message in dataVariable)
        {
        <tr>
            <td><input type="text" @bind="message.Username" /></td>
            <td><input type="text" @bind="message.Message" /></td>
        </tr>
        }

   @code {
    private List<someData> dataVariable;

    protected override void OnInitialized()
    {
        TableSeats = UserMessageService.GetSomeData();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...