我正在尝试为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" }})
由于
答案 0 :(得分:43)
如果您不想要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>
答案 1 :(得分:25)
你可以这样做
@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();"
}
})
答案 2 :(得分:15)
cat
答案 3 :(得分:5)
如果要将值传递给action方法,可以尝试此操作。
@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;" })
在没有参数传递的情况下删除查询字符串。
答案 4 :(得分:1)
尝试:
@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;" })
答案 5 :(得分:0)
如果您有列表视图,则可以执行此操作:
定义选择列表:
@{
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,为每条记录创建不同的id(记住每个元素的id在视图中必须是唯一的),最后为onchange事件调用javascript函数(包括示例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")
}
答案 6 :(得分:0)
首先,您需要提供下拉 onchange 事件;
@Html.DropDownList("ddl_reportId", new SelectList(ViewBag.ddl_reportName, "ddl_reportId", "ddl_reportName"), "Raporu seçin", new { @class = "form-control", @onchange = "getVal()" })
然后在脚本部分你必须像这样调用它。
function getVal() {
var selectedVal = document.getElementById("ddl_reportId").value;
console.log(selectedVal)};