blazor - 如何在 Blazor WASM 中使用 @bind-Value 计算字符 InputTextArea
问题描述
我有这个基本组件:
public TicketDetail AddedTicketDetail { get; set; } = new TicketDetail();
我在剃刀文件中使用它,如下所示:
<div class="col-sm-12">
<InputTextArea @bind-Value="AddedTicketDetail.Description" @bind-Value:event="oninput" class="form-control" />
<span class="attachment-label">Characters: @AddedTicketDetail.Description.Length</span>
<ValidationMessage For="@(() => AddedTicketDetail.Description)" />
</div>
但这还不包括字符。一旦我离开文本区域,它就会直接进入我的验证。有没有一种方法可以使用 InputTextArea 和 @bind-Value 来获取字符数,而无需仅使用textarea
简单的 @bind?
解决方案
您不能强制“内置”InputTextArea
或InputText
绑定在oninput
. 但是你可以继承InputTextArea
:
@inherits InputTextArea
<textarea @attributes="AdditionalAttributes"
class="@CssClass"
value="@CurrentValue"
@oninput="EventCallback.Factory.CreateBinder<string>(this, __value => CurrentValueAsString = __value, CurrentValueAsString)" />
(来源)
然后在您的代码中使用它而不使用@bind-Value:event="oninput"
<div class="col-sm-12">
<InputTextAreaOnInput @bind-Value="AddedTicketDetail.Description" class="form-control" />
<span class="attachment-label">Characters: @AddedTicketDetail.Description.Length</span>
<ValidationMessage For="@(() => AddedTicketDetail.Description)" />
</div>
推荐阅读
- excel - 出现错误后取消隐藏隐藏 Excel 工作表并关闭用户窗体
- python - 为什么这个输出辐照度预测值会有些相同?我正在使用 PVLIB 的 GFS 模型。我在这里做错了什么?
- php - 从预先加载的 laravel 集合中加载特定的列
- acumatica - Acumatica:正确释放的正确方法是什么,以便首先发生基础
- rust - 如何使用标准库对单词进行排序?
- java - Eclipse 错误:java.lang.ClassNotFoundException:org.eclipse.e4.core.di_1.6.1.v20160712-0927 找不到 javax.annotation.PreDestroy
- php - 具有相同名称 Woocommerce 的多个属性
- c++ - 是否可以展开可变参数 (lambda) 模板并将这些函数的返回值传递给另一个可变参数函数?
- php - 使用 PHP 将 txt 文件上传到数据库,然后返回 Excel 文件
- authorize.net - 在 Authorize.net 中进行实时付款