J'essaie de créer un DropDownList
sur une vue rasoir.
Est-ce que quelqu'un pourrait m'aider avec ça?
code HTML5 normal:
<select id="dropdowntipo">
<option value="Exemplo1">Exemplo1</option>
<option value="Exemplo2">Exemplo2</option>
<option value="Exemplo3">Exemplo3</option>
</select>
J'ai essayé ceci:
@{
var listItems = new List<ListItem> {
new ListItem { Text = "Exemplo1", Value = "Exemplo1" },
new ListItem { Text = "Exemplo2", Value = "Exemplo2" },
new ListItem { Text = "Exemplo3", Value = "Exemplo3" }
};
}
@Html.DropDownListFor(model =>
model.tipo,
new SelectList(listItems),
"-- Select Status --"
)
@{
List<SelectListItem> listItems= new List<SelectListItem>();
listItems.Add(new SelectListItem
{
Text = "Exemplo1",
Value = "Exemplo1"
});
listItems.Add(new SelectListItem
{
Text = "Exemplo2",
Value = "Exemplo2",
Selected = true
});
listItems.Add(new SelectListItem
{
Text = "Exemplo3",
Value = "Exemplo3"
});
}
@Html.DropDownListFor(model => model.tipo, listItems, "-- Select Status --")
@{var listItems = new List<ListItem>
{
new ListItem { Text = "Exemplo1", Value="Exemplo1" },
new ListItem { Text = "Exemplo2", Value="Exemplo2" },
new ListItem { Text = "Exemplo3", Value="Exemplo3" }
};
}
@Html.DropDownList("Exemplo",new SelectList(listItems,"Value","Text"))
Vous pouvez utiliser ceci:
@Html.DropDownListFor(x => x.Tipo, new List<SelectListItem>
{
new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}
})
// ViewModel
public class RegisterViewModel
{
public RegisterViewModel()
{
ActionsList = new List<SelectListItem>();
}
public IEnumerable<SelectListItem> ActionsList { get; set; }
public string StudentGrade { get; set; }
}
// Enum Class:
public enum GradeTypes
{
A,
B,
C,
D,
E,
F,
G,
H
}
// Action du contrôleur
public ActionResult Student()
{
RegisterViewModel vm = new RegisterViewModel();
IEnumerable<GradeTypes> actionTypes = Enum.GetValues(typeof(GradeTypes))
.Cast<GradeTypes>();
vm.ActionsList = from action in actionTypes
select new SelectListItem
{
Text = action.ToString(),
Value = action.ToString()
};
return View(vm);
}
// voir l'action
<div class="form-group">
<label class="col-lg-2 control-label" for="hobies">Student Grade:</label>
<div class="col-lg-10">
@Html.DropDownListFor(model => model.StudentGrade, Model.ActionsList, new { @class = "form-control" })
</div>
Voici la réponse la plus simple:
à votre avis, ajoutez simplement:
@Html.DropDownListFor(model => model.tipo, new SelectList(new[]{"Exemplo1",
"Exemplo2", "Exemplo3"}))
OU dans votre contrôleur, ajoutez:
var exemploList= new SelectList(new[] { "Exemplo1:", "Exemplo2", "Exemplo3" });
ViewBag.ExemploList = exemploList;
et votre vue ajoute simplement:
@Html.DropDownListFor(model => model.tipo, (SelectList)ViewBag.ExemploList )
J'ai appris cela avec Jess Chadwick
Utiliser un tableau serait un peu plus efficace que de créer une liste.
@Html.DropDownListFor(x => x.Tipo, new SelectListItem[]{
new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}})
Croyez-moi, j'ai essayé beaucoup d'options pour le faire et j'ai la réponse ici
mais je cherche toujours la meilleure pratique et le meilleur moyen que je connaisse jusqu'à présent pour les développeurs front-end et back-end est for loop
(oui, je ne plaisante pas)
Parce que lorsque le front-end vous donne les pages d'interface utilisateur avec des données fictives, il a également ajouté des classes et des styles en ligne sur une option de sélection spécifique afin que son hard to deal
avec l'utilisation de HtmlHelper
Regardez ceci:
<select class="input-lg" style="">
<option value="0" style="color:#ccc !important;">
Please select the membership name to be searched for
</option>
<option value="1">11</option>
<option value="2">22</option>
<option value="3">33</option>
<option value="4">44</option>
</select>
ceci du développeur frontal donc la meilleure solution consiste à utiliser la boucle for
fristement create
ou get your list
de données de (...) dans l'action du contrôleur et mettez-les dans ViewModel, ViewBag ou autre
//This returns object that contain Items and TotalCount
ViewBag.MembershipList = await _membershipAppService.GetAllMemberships();
Deuxièmement, dans la vue, faites cette simple boucle pour remplir la liste déroulante.
<select class="input-lg" name="PrerequisiteMembershipId" id="PrerequisiteMembershipId">
<option value="" style="color:#ccc !important;">
Please select the membership name to be searched for
</option>
@foreach (var item in ViewBag.MembershipList.Items)
{
<option value="@item.Id" @(Model.PrerequisiteMembershipId == item.Id ? "selected" : "")>
@item.Name
</option>
}
</select>
de cette façon, vous ne casserez pas la conception de l'interface utilisateur, et son simple, facile et plus lisible
espérons que cela vous aidera même si vous n'avez pas utilisé de rasoir
@{
List<SelectListItem> listItems= new List<SelectListItem>();
listItems.Add(new SelectListItem
{
Text = "One",
Value = "1"
});
listItems.Add(new SelectListItem
{
Text = "Two",
Value = "2",
});
listItems.Add(new SelectListItem
{
Text = "Three",
Value = "3"
});
listItems.Add(new SelectListItem
{
Text = "Four",
Value = "4"
});
listItems.Add(new SelectListItem
{
Text = "Five",
Value = "5"
});
}
@Html.DropDownList("DDlDemo",new SelectList(listItems,"Value","Text"))
Reportez-vous à: - Créer une liste déroulante dans l'exemple du rasoir MVC 4
il suffit d'utiliser This
public ActionResult LoadCountries()
{
List<SelectListItem> li = new List<SelectListItem>();
li.Add(new SelectListItem { Text = "Select", Value = "0" });
li.Add(new SelectListItem { Text = "India", Value = "1" });
li.Add(new SelectListItem { Text = "Srilanka", Value = "2" });
li.Add(new SelectListItem { Text = "China", Value = "3" });
li.Add(new SelectListItem { Text = "Austrila", Value = "4" });
li.Add(new SelectListItem { Text = "USA", Value = "5" });
li.Add(new SelectListItem { Text = "UK", Value = "6" });
ViewData["country"] = li;
return View();
}
et dans View utilisation suivante.
@Html.DropDownList("Country", ViewData["country"] as List<SelectListItem>)
si vous souhaitez obtenir des données de Dataset et les renseigner dans une zone de liste, utilisez le code suivant.
List<SelectListItem> li= new List<SelectListItem>();
for (int rows = 0; rows <= ds.Tables[0].Rows.Count - 1; rows++)
{
li.Add(new SelectListItem { Text = ds.Tables[0].Rows[rows][1].ToString(), Value = ds.Tables[0].Rows[rows][0].ToString() });
}
ViewData["FeedBack"] = li;
return View();
et en vue écrivez le code suivant.
@Html.DropDownList("FeedBack", ViewData["FeedBack"] as List<SelectListItem>)
Si vous utilisez ASP.net 5 (MVC 6) ou une version ultérieure, vous pouvez utiliser le nouvelle aide pour les balises pour une syntaxe très agréable:
<select asp-for="tipo">
<option value="Exemplo1">Exemplo1</option>
<option value="Exemplo2">Exemplo2</option>
<option value="Exemplo3">Exemplo3</option>
</select>
Cela peut aussi être fait comme
@model IEnumerable<ItemList>
<select id="dropdowntipo">
<option value="0">Select Item</option>
@{
foreach(var item in Model)
{
<option value= "@item.Value">@item.DisplayText</option>
}
}
</select>
List<tblstatu> status = new List<tblstatu>();
status = psobj.getstatus();
model.statuslist = status;
model.statusid = status.Select(x => new SelectListItem
{
Value = x.StatusId.ToString(),
Text = x.StatusName
});
@Html.DropDownListFor(m => m.status_id, Model.statusid, "Select", new { @class = "form-control input-xlarge required", @type = "text", @autocomplete = "off" })