首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在不使用Blazor中的bind的情况下在下拉列表中确定选定的值?

如何在不使用Blazor中的bind的情况下在下拉列表中确定选定的值?
EN

Stack Overflow用户
提问于 2022-09-19 18:02:41
回答 1查看 41关注 0票数 0

我正试图在C#中完成这一切,但我可能不得不求助于JavaScript。

我有一个下拉列表,我想做一个换一次的活动。我不能将下拉列表绑定到模型,因为绑定阻止了onchange的使用。我需要使用onchange事件来修改屏幕上的某些内容,具体取决于所选内容。也许一些代码会有帮助。

代码语言:javascript
复制
<select id="BrandSelected" @onchange="BrandIsChanged">
<option value="NewBrand">--Create New Brand--</option>
@foreach (var brand in Brands)
{
   if(Model.BrandID == brand.BrandID)
   {
      <option value="@brand.BrandID" selected>@brand.Brand</option>
   }
   else
   {
      <option value="@brand.BrandID">@brand.Brand</option>
   }
}
</select>
<label id="BrandLabel" hidden>New Brand</label>
<InputText id="NewBrandInput" @bind="NewBrandProp" hidden></InputText>

所以我在顶部添加了一个选项来创建一个新的品牌。这是一个重新插入,所以有可能其中一个品牌可能已经被选中。它仍将是可变的更新。如果用户选择任何现有的品牌,它就能工作,但如果下拉列表中不存在新品牌,我希望能够添加一个新品牌。如果在BrandIsChanged方法中选择了NewBrand,那么我希望创建一个具有InputText值的新品牌。这意味着,如果所选的值为InputText,则必须同时修改标签和NewBrand才能在更改时显示。那么,如何在BrandIsChanged方法中确定所选项(BrandSelected)值是什么?

其他可能有帮助的事情:

代码语言:javascript
复制
@code{
//Populated on load in a method
private IEnumerable<T_IFS_BrandDTO> Brands { get; set; } = new List<T_IFS_BrandDTO>();
//The new brand, if user decides to enter one.
private string NewBrandProp { get; set; }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-19 18:15:00

onchange事件将ChangeEventArgs参数传递给您的事件处理程序,您可以使用该处理程序获取选定的值。

代码语言:javascript
复制
<select id="BrandSelected" @onchange="BrandIsChanged">
    ...
</select>

@code {
    private BrandIsChanged(ChangeEventArgs args)
    {
         if (args?.Value?.ToString() == "NewBrand")
         {
             // do stuff
         }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73777562

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档