【问题标题】:Blazor List Of Strings Input BindingBlazor 字符串输入绑定列表
【发布时间】:2019-10-27 18:07:20
【问题描述】:

我正在尝试显示字符串列表,并且我希望用户能够编辑列表以更改对象,但是当我在修改输入字段后查看列表时,尚未进行更改。

如何绑定字符串列表?

 @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>
    }

【问题讨论】:

    标签: c# html blazor


    【解决方案1】:

    使用正确的 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

    【讨论】:

      【解决方案2】:

      我犯了一个愚蠢的错误,问题不在于我的语法。我犯了绑定到我的服务而不是局部变量的错误,所以当我离开焦点时,它无法更新,只是从服务中检索

      我只是在下面添加了局部变量

              @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();
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-08-28
        • 2022-01-23
        • 1970-01-01
        • 2023-03-20
        • 2014-11-06
        • 1970-01-01
        • 2021-07-23
        • 2023-04-01
        相关资源
        最近更新 更多