ASP.NET Core Filtered下拉列表不显示先前输入的值



我有一个ASP。. NET Core web应用程序,在编辑页面上有一个下拉列表。它是一个SQL后端。我的一个领域是"项目经理"。从"用户"中填充表。

所以人们不选择退休或不活跃的用户,SQL中有一个布尔字段叫做"Active"对于活跃用户为真,对于旧用户为假。

我根据这个属性过滤我的选择列表,它正确地只显示当前用户。

但是,如果一个现有的记录在Project Manager字段中有一个不活动的用户,当您打开编辑页面时,它显示为空。

当选择列表中不存在该值时,是否有一种方法可以保留编辑页面上的现有值?

或者,是否有其他方法可以做到这一点?

在没有记录的情况下,您可以将'默认'数据与您的列表连接。如果您的列表返回空记录,它将与default连接,并且将有一个默认选项。

如果下拉列表返回null或空,您可以为下拉列表设置一些硬编码值。在这种情况下,如果在列表中没有找到记录,则硬编码数据将填充在UI上。

我使用下面的代码让它工作:

@{
if (Model.Projects.ProjectManager.HasValue &&
Model.Projects.ProjectManagerNavigation.Active == false)
{
int pm = (int)Model.Projects.ProjectManager;
<option value="@pm">@Model.Projects.ProjectManagerNavigation.FullName</option>
}
else
{<option disabled selected>--- SELECT ---</option>}
}

在该字段的Select Tag内。

它检查Project Manager字段是否有一个值,以及该用户是否为Inactive,并仅为现有用户添加一个选择列表选项,即使他们不再在过滤的选择列表中。

谢谢你的回答Sachin,我只是需要弄清楚如何实现。

最新更新