【问题标题】:Bind value in Blazor application only if button is clicked仅当单击按钮时才在 Blazor 应用程序中绑定值
【发布时间】:2021-06-14 13:33:49
【问题描述】:

我是 Blazor 的新手,所以我不确定这是否受支持,否则我将不得不使用 JS。

我有一个输入字段绑定到 Blazor 应用程序中的 C# 字段

<input type="text" name="name" value="@someField"/>

还有一个按钮:

< button type="button" @onclick="UpdateSomeField"/>

我想要实现的是,只有在单击按钮时,C# 字段someField 才应该使用输入字段的值进行更新。

知道这是怎么做的吗?

更新

UpdateSomeField 方法应该获取输入字段的值并更新数据库并使用它更新 DOM(例如在表中)

@code{
  private string someField;

  private void UpdateSomeField(){
    someField = //value of input field
    // Update Database
  } 
} 

【问题讨论】:

  • 无意冒犯,但您可能想阅读 YouTube 教程系列,或试试这个:blazor-university.com 这不是一个学习了一个多小时的人或两个人可能会问。
  • @Bennyboy1973 感谢您的建议,在发布此问题之前我已经在那里寻找答案,但没有发现任何有用的信息
  • 很好。在 UpdateSomeField 方法中显示您正在执行的操作,我很乐意更正它。
  • 我不明白你的问题。 “我想要实现的是,只有当单击按钮时,C# 字段 someField 才应该使用输入字段的值进行更新。”您正在将值输入到输入字段中,因此在单击按钮之前它已经更新。不然怎么可能?或者是否涉及其他输入字段?就像,您正在从一个输入字段中获取值并在单击按钮时使用它更新另一个?
  • @EricKing 更正 C# 字段“someField”也可以绑定到其他元素,因此当您在输入字段中输入新值并单击按钮时,它也应该更新所有其他元素。跨度>

标签: blazor


【解决方案1】:

要(特别)回答您的问题,您可以这样做:

<input type="text" name="name" value="@_someField" />

<button type="button" @onclick="UpdateSomeField"/>

@code {

    private string _someField;

    private string someField;

    private void UpdateSomeField()
    {
        someField = _someField;
        // Update Database
    }
}

为了让您的代码访问input 中的值,它必须绑定到您的组件中的一个字段。所以如果你不想在点击按钮之前设置someField,你需要一个中间字段来保存输入值。

[礼貌] 这似乎是一种非常愚蠢的做法,但如果这是你想做的,那就是你的项目。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-14
    • 2022-01-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多