ASP.NET MVC 列表框处理所选项目事件

2024-03-18

我在视图中使用 HTML.ListBox,如下所示:

<%= Html.ListBox("projects", Model.Projects)  %>

这是用 IEnumerable 填充的<SelectListItem>在这样的模型中:

Projects = project.Select(a => new System.Web.Mvc.SelectListItem
        {
            Value = "foo",
            Text = a.project + "(" + a.count + ")",
            Selected = false
        });

        return Projects;

其又返回到控制器以传递到强类型视图。

我的问题是,如何监控选定项目事件?当用户进行选择和/或取消选择时,我需要能够执行一些操作。

Thanks.


如果您熟悉 jQuery,您甚至可以捕获更改并提交您的表单:

$('#projects').change(function () {
    $(this).parents('form').submit();
});

或者你可以使用ajax http://api.jquery.com/jQuery.ajax/向操作提交一些数据

$('#projects').change(function () {
    $.ajax({
        type: 'POST',
        url: '<%=Url.Action("<action>", "<controller>")%>',
            data: { id: $('#projects').val() },
            dataType: 'json',
        complete: function(XMLHttpRequest, textStatus) {
            // Do something here.
            }
        });
});

UPDATE:

既然你正在使用jQuery 下拉列表 http://dropdown-check-list.googlecode.com/svn/trunk/doc/dropdownchecklist.html您甚至可以捕获 onItemClick 并调用控制器的操作,传递所选选项的值和状态已检查/未检查:

$("#projects").dropdownchecklist({
    emptyText: "select something",
    width: 150,
    onItemClick: function(checkbox, selector){
        var isChecked = checkbox.prop("checked");
        alert("element id: " + checkbox.prop("value"));

        $.ajax({
        type: 'POST',
        url: '<%=Url.Action("<action>", "<controller>")%>',
            data: { selecteId: checkbox.prop("value"), isChecked: isChecked },
            dataType: 'json',
        complete: function(XMLHttpRequest, textStatus) {
            // Do something here.
            }
        });
   }
});

你可以看看这个fiddle http://jsfiddle.net/vandalo/5xa8B/2/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ASP.NET MVC 列表框处理所选项目事件 的相关文章