2013-05-28 62 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)      
     ) 

我必須做一些錯誤的地方,因爲我不知道爲什麼我需要修改模型,並在其中添加列表中顯示的當前值在組合中盒子