Событие onchange для html.dropdownlist
Я пытаюсь вызвать метод действия для события onchange для выпадающего списка, как я могу сделать это без использования jquery onchange.
@Html.DropDownList("Sortby",
new SelectListItem[]
{
new SelectListItem() { Text = "Newest to Oldest", Value = "0" },
new SelectListItem() { Text = "Oldest to Newest", Value = "1" }})
Спасибо
8 ответов
Вы можете сделать это
@Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem()
{
Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" } , new
{
onchange = @"form.submit();"
}
})
Если вам не нужен jquery, вы можете сделать это с помощью javascript:
@Html.DropDownList("Sortby", new SelectListItem[]
{ new SelectListItem() { Text = "Newest to Oldest", Value = "0" },
new SelectListItem() { Text = "Oldest to Newest", Value = "1" }},
new { @onchange="CallChangefunc(this.value)" })
<script>
function CallChangefunc(val)
{
window.location.href="/Controller/Actionmethod?value="+val;
}
</script>
@Html.DropDownListFor(m => m.State,
new SelectList(ViewBag.StateList, "StateId", "StateName"),
"Select state",
new { @class = "form-control", @onchange="FillCity()" })
function FillCity() {
var stateId = $('#State').val();
$.ajax({
url: '/Employees/FillCity',
type: "GET",
dataType: "JSON",
data: { State: stateId},
success: function (cities) {
$("#City").html(""); // clear before appending new list
$.each(cities, function (i, city) {
$("#City").append(
$('<option></option>').val(city.CityId).html(city.CityName));
});
}
});
}
Вы можете попробовать это, если передаете значение в метод действия.
@Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem() { Text = "Newest to Oldest", Value = "0" }, new SelectListItem() { Text = "Oldest to Newest", Value = "1" }},new { onchange = "document.location.href = '/ControllerName/ActionName?id=' + this.options[this.selectedIndex].value;" })
Удалите строку запроса в случае отсутствия передачи параметров.
сначала вам нужно указать свое раскрывающееся событие onchange;
@ Html.DropDownList ("ddl_reportId", новый SelectList(ViewBag.ddl_reportName, "ddl_reportId", "ddl_reportName"), "Raporu seçin", новый {@class = "form-control", @onchange = "getVal()"})
тогда в разделе сценария вы должны назвать это так.
function getVal() {
var selectedVal = document.getElementById("ddl_reportId").value;
console.log(selectedVal)};
Попробуй это:
@Html.DropDownList("Sortby", new SelectListItem[] { new SelectListItem()
{ Text = "Newest to Oldest", Value = "0" }, new SelectListItem()
{ Text = "Oldest to Newest", Value = "1" }},
new { onchange = "document.location.href = '/ControllerName/ActionName?id=' + this.options[this.selectedIndex].value;" })
Попробуйте следующее, если вы хотите вызвать функцию Javascript в событии изменения: @Html.DropDownList("ProjectId", Model.Projects, "Select Project", new Dictionary<string, object> { { "class", "select2" }, { "onchange", "onProjectSelect()" } })
function onProjectSelect() {
//write your business logic..
}
Если у вас есть представление списка, вы можете сделать это:
Определите список выбора:
@{ var Acciones = new SelectList(new[] { new SelectListItem { Text = "Modificar", Value = Url.Action("Edit", "Countries")}, new SelectListItem { Text = "Detallar", Value = Url.Action("Details", "Countries") }, new SelectListItem { Text = "Eliminar", Value = Url.Action("Delete", "Countries") }, }, "Value", "Text"); }
Используйте определенный SelectList, создавая разные идентификаторы для каждой записи (помните, что идентификаторы каждого элемента должны быть уникальными в представлении), и, наконец, вызовите функцию javascript для события onchange (включите параметры в пример url и ключ записи):
@Html.DropDownList("ddAcciones", Acciones, "Acciones", new { id = item.CountryID, @onchange = "RealizarAccion(this.value ,id)" })
Функция onchange может быть чем-то вроде:
@section Scripts { <script src="~/Scripts/jquery-1.10.2.min.js"></script> <script src="~/Scripts/jquery.unobtrusive-ajax.js"></script> <script type="text/javascript"> function RealizarAccion(accion, country) { var url = accion + '/' + country; if (url != null && url != '') { window.location.href = url ; } } </script> @Scripts.Render("~/bundles/jqueryval") }