blazor - 如何在 blazor 中通过外部代码设置选择框值?
问题描述
我正在使用TelerikDropDownList
并且我想通过事件通过外部代码(手动,没有用户界面)设置选择框值。
<TelerikDropDownList Id="TelerikDropDownListId"
@bind-Value="@Model.Id"
Data="@DataDropDownList"
ValueField="Value"
TextField="Text"
@ref="TelerikDropDownListId"/>
<button @onclick="ChangeSelectBoxValue" />
@code {
public List<DropDownItem<long>> DataDropDownList = new List<DropDownItem<long>>();
private void ChangeSelectBoxValue()
{
DataDropDownList.Add(new DropDownItem<long>() { Value = 0, Text = "(New)" });
TelerikDropDownListId.TextField = "(New)";
TelerikDropDownListId.Value = 0;
StateHasChanged();
}
}
解决方案
您需要在列表中添加新项目,但更改您传入@bind-Value
的值而不更改组件 ref 的值。
private void ChangeSelectBoxValue()
{
// add new item to the drop down list
DataDropDownList.Add(new DropDownItem<long>() { Value = 0, Text = "(New)" });
// change the value of the drop down
Model.Id = 0; // same Value as the item added in the drop down list
StateHasChanged();
}
推荐阅读
- sql - Oracle 选择存在 2 的相同 id
- c++ - 为什么递归函数的最终输出是5?
- c# - 如何使用 MSBuild 为 C# 应用程序创建 DLL?
- spss - 尝试在 SPSS 中为 rmANOVA 计算特殊对比分析,但我不断收到相同的错误
- schema - 通过配置 Snowflake Microstrategy 使默认 SCHEMA 更新(创建临时表)
- java - EAR 中包含的 IntelliJ 调试 maven 包
- postgresql - 没有自动提交的 PostgreSQL 过程中的事务控制
- python - Python:根据修改时间对目录下的目录进行排序
- sql - 在插入涉及 NULL、SQL Server 之前检查 2 列中的重复项
- sql-server - 我们可以删除多余的空行吗?