Gestion de l'événement onchange en HTML.DropDownList Razor MVC

je suis de la manipulation d'un onchange événement avec une valeur sélectionnée par simple HTML comme ceci:

<select onchange="location = this.value;">
         <option value="/product/categoryByPage?PageSize=15" selected="selected">15</option>
         <option value="/product/categoryByPage?PageSize=30" selected="selected">30</option>
         <option value="/product/categoryByPage?PageSize=50" selected="selected">50</option>
</select>

en Faisant comme ceci:

List<SelectListItem> items = new List<SelectListItem>();
string[] itemArray = {"15","30","50"};

for (int i = 0; i < itemArray.Count(); i++)
{
    items.Add(new SelectListItem 
    { 
        Text = itemArray[i], 
        Value = "/product/categoryByPage?pageSize=" + itemArray[i]
    });
}

ViewBag.CategoryID = items;
@Html.DropDownList("CategoryID")

Comment puis-je gérer onchange@Html.DropDownList()

30
demandé sur wonea 2012-01-23 18:17:49

2 réponses

Description

vous pouvez utiliser une autre surcharge du DropDownList méthode. Choisissez celui dont vous avez besoin et passez un objet avec vos attributs html.

Exemple

@Html.DropDownList("CategoryID", null, new { @onchange="location = this.value;" })

Plus D'Information

56
répondu dknaack 2012-01-23 14:22:24

Le chemin de dknaack ne fonctionne pas pour moi, j'ai trouvé cette solution:

@Html.DropDownList("Chapters", ViewBag.Chapters as SelectList, 
                    "Select chapter", new { @onchange = "location = this.value;" })

@Html.DropDownList(controlName, ViewBag.property + cast, "Default value", @onchange event)

dans le controller vous pouvez ajouter:

DbModel db = new DbModel();    //entity model of Entity Framework

ViewBag.Chapters = new SelectList(db.T_Chapter, "Id", "Name");
4
répondu pixelfirexy 2015-06-15 08:38:13