Blazor Checkbox双向绑定和更改事件

2023-11-24

绑定复选框并在该复选框更改时触发事件的正确方法是什么?我尝试了几种不同的方法,但都没有完全按照我的希望工作。请注意,该复选框位于组件中。

<input type="checkbox" checked="@IsChecked" @onchange="CheckboxChanged">
@code{
      [Parameter]
      public bool IsChecked { get; set; } = true;
      private void CheckboxChanged()
      {
           Console.WriteLine($"Checkbox changed {IsChecked}");
      }
}

当页面加载时,它会读取赋予的值IsChecked,当 CheckBox 被选中时,该方法将被触发。然而,值IsChecked没有更新。那么如果绑定值为IsChecked在组件外部更改时,该方法不会触发,但值IsChecked已更改(应注意 UI 已正确更新)。

我想我需要一个像这样的实际绑定:

<input type="checkbox" @bind="IsChecked" @onchange="CheckboxChanged" >

但是,这会产生一个错误onchange使用两个或多个

<input type="checkbox" @bind="IsChecked" @onclick="CheckboxChanged" >

然而,当用户单击该复选框时,它确实会触发该方法,IsChecked是旧值(我假设点击发生在绑定之前)。那么如果值为IsChecked在组件外部发生更改,该方法再次不会触发。

正确的方法是什么?


您的代码/组件有两个问题:

  1. 你不应该修改[Parameters]在你的代码中。每当组件更新时都会设置这些。
  2. 绑定使用OnChanged要更新的事件isChecked,所以你也不能使用它。

这是有效的注释代码。

  1. 使用内部字段来保存复选框状态。
  2. 连线了OnInput event.
@page "/"
<input type="checkbox" checked="@isChecked" @oninput="CheckboxChanged">

@code{
    [Parameter]
    public bool IsChecked { get; set; } = true;

    // Internal field holding checkbox state
    private bool isChecked;

    // updates the internal value whwenever the component is updated
    // You may not want that??
    protected override void OnParametersSet()
    {
        isChecked = this.IsChecked;
    }

    private void CheckboxChanged(ChangeEventArgs e)
    {
        // get the checkbox state
        var value = e.Value;
        Console.WriteLine($"Checkbox changed {IsChecked}");
      }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Blazor Checkbox双向绑定和更改事件 的相关文章

  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • free 和 malloc 在 C 中如何工作?

    我试图弄清楚如果我尝试 从中间 释放指针会发生什么 例如 看下面的代码 char ptr char malloc 10 sizeof char for char i 0 i lt 10 i ptr i i 10 ptr ptr ptr pt
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • ASP.NET Core 3.1登录后如何获取用户信息

    我试图在登录 ASP NET Core 3 1 后获取用户信息 如姓名 电子邮件 id 等信息 这是我在登录操作中的代码 var claims new List
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 在 WPF 中使用 ReactiveUI 提供长时间运行命令反馈的正确方法

    我有一个 C WPF NET 4 5 应用程序 用户将用它来打开某些文件 然后 应用程序将经历很多动作 读取文件 通过许多插件和解析器传递它 这些文件可能相当大 gt 100MB 因此这可能需要一段时间 我想让用户了解 UI 中发生的情况
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • C++ 中的 include 和 using 命名空间

    用于使用cout 我需要指定两者 include
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲
  • MySQL Connector C/C API - 使用特殊字符进行查询

    我是一个 C 程序 我有一个接受域名参数的函数 void db domains query char name 使用 mysql query 我测试数据库中是否存在域名 如果不是这种情况 我插入新域名 char query 400 spri
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 如何使用 ESLint + Prettier + Airbnb 规则 + TypeScript + Vetur 配置 Vue CLI 4?

    创建新项目时使用Vue CLI v4 0 5检查选项打字稿 and 短绒 格式化程序 您将获得用于 linting 和格式化的预配置选项 Pick a linter formatter config Use arrow keys gt ES
  • CSS 直接后代“>”运算符不起作用(并且不是 IE6)?

    我正在尝试做一些非常简单的事情 选择作为标签的直接后代的标签 我使用的CSS如下 table data gt tr background color red 我的 HTML 看起来像这样 table class data tr tr tab
  • 在 SQL 中将数据从宽格式转换为长格式

    我有一些格式的数据 VAR1 VAR2 Score1 Score2 Score3 A B 1 2 3 我需要将其转换为格式 VAR1 VAR2 VarName Value A B Score1 1 A B Score2 2 A B Scor
  • 在 Common Lisp 中展开 / splat 参数

    假设我有一个参数列表 gt setf format args t it s a 1 T it s a 1 然后 我如何将其 展开 或 展开 为一系列参数而不是单个列表参数 以提供给格式函数 即我希望发生以下函数调用 gt format t
  • Amazon S3 POST,事件何时完成?

    我在一个简单的项目中使用 Amazon S3 当用户上传文件时 我首先使用XMLHTTPRequest将详细信息发送到我的数据库 然后触发表单 POST 将文件直接上传到 S3 但我不太清楚的是如何判断上传何时完成 以便我可以正确更新显示
  • Nodatime 库中有工作日的概念吗?

    Nodatime 库中有工作日的概念吗 我想做的是以某种方式声明一个日历周有 5 个工作日 然后能够提出如下问题 从 任何给定日期 10 个工作日开始 结束日期是哪一天 or 从 这个日历日期 到 那个日历日期 这个间隔有多少个工作日 不
  • openssl 提供 Kubernetes Ingress Controller 假证书

    我已经配置了ssl证书 如果我访问https
  • 如何在 Bash 中写入二进制数据

    假设 Bash 脚本中有一个值为 001 的变量 如何将此二进制数据以位形式写入文件 如 001 而不是 1 echo将其写为字符串 但我想以位形式写 您可以使用以下命令以十六进制或八进制写入任意字节 printf x03 gt file
  • 使用推/拉更改 Bootstrap 中 col-*-12 列的顺序

    我有两列相同大小的 col xs 12 当屏幕尺寸与移动设备的尺寸相对应时 我会更改它们的位置 我会把它们按相反的顺序排列 我读过推和拉引导指令有助于实现这一点 但是是否可以使用以下类更改相同大小的两列的位置 div col xs 12 c
  • Imgur API - 即使“X-Ratelimit-Userremaining”不为 0,也会出现“请求过多”错误

    我正在通过 Imgur API 上传图像 https apidocs imgur com 但 即使前一个请求返回 X Ratelimit Userremaining 1216 我也收到 请求过多 错误 429 我的理解是 我应该能够在达到速
  • 日期分隔符问题

    我有以下代码 DateTime Now ToString MM dd yyyy 它总是给我这个输出 04 13 2011 而不是 04 13 2011 我可以知道为什么我会遇到这个奇怪的问题吗 几乎可以肯定 您所在的文化中默认的日期分隔符就
  • 检查 np.array 是否类似于日期时间的一致方法

    我正在进行一些单元测试 我需要确保函数始终返回类似 np datetime64 的对象 但是 它们可以是任何单位 年 日 纳秒等 我试过了 comp function returns datetime array inp assert is
  • Mongoose模型与Sinon的存根保存实例方法

    我正在尝试使用 Mongoose 模型测试用于保存小部件的服务功能 我想在我的模型上删除保存实例方法 但我找不到一个好的解决方案 我看过其他建议 但似乎没有一个是完整的 See this and this 这是我的模型 widget js
  • 尝试编译时出现 QT 未定义引用错误

    我在 QT 项目中添加了一个 IcecastServer 类 将头文件添加到 pro 文件中 并添加了一些代码 每次编译都会出现以下错误 release icecastserver o icecastserver cpp text 0x39
  • css3动画/过渡/变换:如何使图像变大?

    我想让我的图像高度增长到 1500px 希望宽度会自动调整大小 如果没有 我也可以轻松设置它 我正在使用 jquery animate 但它对我来说太不稳定了 我知道我可以使用 webkit transform scale 2 但我希望将其
  • 如何改变函数中变量的作用域?蟒蛇[重复]

    这个问题在这里已经有答案了 这似乎是一个非常愚蠢的问题 但我对 Python 中的范围规则感到困惑 在下面的示例中 我将两个带有值的变量 x y 发送到一个应该更改其值的函数 当我打印结果时 变量没有改变 def func1 x y x 2
  • 如果页面中有错误,则重定向到自定义错误页面

    我是新来的PHPWeb开发 我想知道 PHP 中是否有任何代码可以将我重定向到页面 我们将其命名为 myerrorpage php 页面上是否有错误 In JSP可以使用以下代码 我想知道上面有没有JSPPHP 中的代码类型 是 那么请帮忙
  • django:根据条件排除某些表单元素

    我有一些表单字段 我想根据是否满足特定条件来包含 排除这些字段 我知道如何包含和排除表单元素 但是当我希望它的元素根据函数的结果显示时 我很难做到这一点 这是我的表格 class ProfileForm ModelForm this tea
  • AWS EC2 究竟如何计算每小时成本?

    简单的问题 如果我有六个相同的 EC2 实例处理数据正好十分钟然后关闭 我会被收取六个小时还是一小时的费用 Update EC2 和 EBS 现在基于使用情况下降到第二个 旧答案变更的粒度精确到小时 来自 AWS 定价网站http aws
  • Blazor Checkbox双向绑定和更改事件

    绑定复选框并在该复选框更改时触发事件的正确方法是什么 我尝试了几种不同的方法 但都没有完全按照我的希望工作 请注意 该复选框位于组件中