我在使用telerik组合框时遇到困难,显示空白值而不是模型的当前值。
我有以下型号:
public decimal? ResourceId { get; set; }
public string ResourceName{ get; set; }
public decimal ResourceTypeId { get; set; }
public string ResourceTypeName{ get; set; }
我希望我的视图在组合框中显示ResourceTypeName以便能够更改它,因此我将以下内容添加到我的模型中
public IEnumerable<ResourceTypeModel> ResourceType()
{
ResourceTypeModel a = new ResourceTypeModel();
a.ResourceTypeId = this.ResourceTypeId ;
a.ResourceTypeName= this.ResourceTypeName;
List<ResourceTypeModel> MyList= new List<ResourceTypeModel>();
MyList.Add(a);
return MyList;
}
现在,我的视图包含以下组合框:
@(Html.Telerik().ComboBoxFor(model => model.ResourceTypeId)
.AutoFill(true)
.DataBinding(binding => binding.Ajax().Select("_AutoCompleteAjaxLoadingResourceTypeList","ResourceController"))
.BindTo(new SelectList(Model.ResourceType(), "ResourceTypeId", "ResourceTypeName"))
.Filterable(filtering =>
{
filtering.FilterMode(AutoCompleteFilterMode.Contains);
filtering.MinimumChars(2);
})
.HighlightFirstMatch(true)
)
但是当我的视图打开时,组合框显示空值。
如果我点击组合框的下拉按钮,我想要显示的值就好像它是列表中的第二项,我可以选择它。
组合框适用于自动完成部分,并在输入时正确显示我的所有可用值,但不会直接显示所需的值。
答案 0 :(得分:0)
所以,这是我的解决方案,它现在做我想要的但我仍然不明白为什么它不起作用。
我修改了我的模型并从一个返回ResourceType列表的方法切换到Ienumerable属性,如下所示:
public IEnumerable<ResourceTypeModel> ResourceType{ get; set; }
我修改了我的模型构建器,以使用我的ResourceType提供“单项列表” 并修改了视图以在“.BindTo”中使用它
@(Html.Telerik().ComboBoxFor(model => model.ResourceTypeId)
.AutoFill(true)
.DataBinding(binding => binding.Ajax().Select("_AutoCompleteAjaxLoadingResourceTypeList","ResourceController"))
.BindTo(new SelectList(Model.ResourceType, "ResourceTypeId", "ResourceTypeName"))
.Filterable(filtering =>
{
filtering.FilterMode(AutoCompleteFilterMode.Contains);
filtering.MinimumChars(2);
})
.HighlightFirstMatch(true)
)
我必须在某处做错事,因为我不知道为什么我需要修改模型并在其中添加一个列表来显示组合框内的当前值