0

我在使用显示空白值而不是模型当前值的 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)                    
        )

但是当我的视图打开时,组合框显示一个空值。

如果我单击组合框的下拉按钮,我想要显示的值就好像它是列表的第二项一样,我可以选择它。

组合框非常适合自动完成部分,并在输入时正确显示我所有可用的值,但根本不会直接显示所需的值。

4

1 回答 1

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)                    
        )

我一定在某处做错了什么,因为我不明白为什么我需要修改模型并在其中添加一个列表以显示组合框中的当前值

于 2013-05-29T09:11:39.233 回答