2014-09-16 3 views
0

J'essaye de lier une liste déroulante de kendo avec le modèle mais je suis indéfini dans chaque option.Relier les données dynamiques à la liste déroulante de kendo

Modèle:

public SelectList CountriesTemp { get; set; } 
public int Country{get;set;} 

Controller:

public ActionResult Registration() 
{ 
RegistrationModel Model = new RegistrationModel(); 
Model.CountriesTemp = new SelectList(ObjService.GetCountries(), "CountryID", "Country_Name"); 
return View(Model); 
} 

Voir la page

@(Html.Kendo().DropDownListFor(m => m.Country) 
     //The name of the dropdownlist is mandatory. It specifies the "id" attribute of the widget. 
    .DataTextField("Country_Name") //Specifies which property of the Product to be used by the dropdownlist as a text. 
    .DataValueField("CountryID") //Specifies which property of the Product to be used by the dropdownlist as a value. 
    .BindTo(Model.CountriesTemp) //Pass the list of Products to the dropdownlist. 
) 

Quelqu'un peut-il s'il vous plaît me guider là où je me trompe parce que si je lie simple dropdownlist de MVC, Ça marche bien. Juste un changement de ligne comme ci-dessous dans ViewPage et c'est de travail.

@Html.Dropdownlist("CountriesTemp") 
+1

au lieu de 'Model.CountriesTemp = new SelectList (ObjService.GetCountries(), "CountryID", "country_name")' 'essayer Model.CountriesTemp = new ObjService.GetCountries (); Je ne pense pas que 'Kendo.DropDownListFor()' utilise un 'SelectList' –

+0

Et s'il le peut, il devrait probablement être' .DataTextField ("Name") 'et' .DataValueField ("Value") 'parce qu'ils sont les seules propriétés (pertinentes) de 'SelectList' –

Répondre

0

Il semble que vous ayez un conflit (pour ainsi dire, il se passe ici). Essayez quelque chose comme ceci:

@(Html.Kendo().DropDownListFor(m => m.Country) 
    .DataTextField("Text") 
    .DataValueField("Value") // These may be optional now 
    .BindTo(Model.CountriesTemp)) 

Sinon, vous ne pouvez pas utiliser un SelectList et faire une propriété comme IEnumerable<Country> Countries { get; set; } sur votre modèle. Ensuite, la liaison ressemblerait à quelque chose comme:

@(Html.Kendo().DropDownListFor(m => m.Country) 
    .DataTextField("Country_Name") 
    .DataValueField("CountryID") 
    .BindTo(Model.Countries)) 
Questions connexes