2013-05-28 55 views
0

我遇到了telerik combobox显示空白值而不是模型当前值的问题。Telerik Combobox不显示绑定值

我有以下型号:

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

所以,这是我的解决方案,它现在做我想要的,但我仍然不明白为什么它不工作。

我修改我的模型和方法切换的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)      
     ) 

我必须做一些错误的地方,因为我不知道为什么我需要修改模型,并在其中添加列表中显示的当前值在组合中盒子