下拉框联动效果,我们以部门--职位为例,选择部门时,关联到该部门的职位.下拉框的写法就不多说了,详细请参照前文.

视图:

其中,dept是部门的属性,deptlist是部门下拉框的属性,job是职位的属性,joblist是职位下拉框的属性,下拉框绑定请参照前文

@using (Html.BeginForm("aaai003sch", "aaa", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
@Html.AntiForgeryToken()
<div class="modal-body">
<div class="form-horizontal">
<div class="form-group">
@Html.LabelFor(m => m.dept, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DropDownListFor(model => model.dept, Model.deptlist, new { @class = "form-control select2 ", style = "width: 100%;" })
@Html.ValidationMessageFor(m => m.dept, "", new { @class = "text-danger" })
</div>
</div>
<div class="form-group">
@ Html.LabelFor(m => m.job, new { @class = "col-sm-2 control-label" })
<div class="col-sm-10">
@Html.DropDownListFor(model => model.job, Model.joblist, new { @class = "form-control select2 page-select2-area", style = "width: 100%;" })
@Html.ValidationMessageFor(m => m.job, "", new { @class = "text-danger" })
</div>
</div>
</div>
</div>
</div>

当部门变动的时候,职位也相应改变:

    //根据城市获取酒店
$("#dept").change(function () {
var url = rootUrl + "aaa/GetJobByDept";
var dept = $(this).val(); //获取部门的值
var job = $("#job");
job.empty(); //清空当前职位的值
//这句很重要,因我们用的是select2插件,若没有用这个插件可以去掉这句
job.select2('val', '');
$.ajax({
cache: false,
type: "GET",
url: url,
data: { "Dept": dept},
success: function (data) {
$.each(data, function (id, option) { job.append($('<option></option>').val(option.Id).html(option.Name));
});
job.trigger('change');
},
error: function (xhr, ajaxOptions, thrownError) {
toastr["error"]("请选择部门");
}
});
});

执行js里的URL,这个程式写在控制器里:

        [Description("根据部门获取职位")]
[AcceptVerbs(HttpVerbs.Get)]
[LoginAllowView]
public ActionResult GetJobByDept(string dept)
{
if (String.IsNullOrEmpty(dept))
{
throw new ArgumentNullException("dept");
}
StringBuilder sb = new StringBuilder();
sb = new StringBuilder();
sb.Append(" SELECT jobid,jobname ");
sb.Append(" FROM job_file ");
sb.Append(" LEFT JOIN dept_file ON jobdept = deptid ");
sb.AppendFormat(" WHERE deptid='{0}'", dept);
DataTable dt = sqlHelper.getData(sb.ToString());
var result = dt.AsEnumerable().Select(row => new Item
{
Name = Utils.ObjToStr(row["jobname"]),
Id = Utils.ObjToInt(row["jobid"], )
}).ToList();
return Json(result, JsonRequestBehavior.AllowGet);
}

MVC 下拉框联动效果(单选)的更多相关文章

  1. jQuery Ajax MVC 下拉框联动

    无刷新下拉框联动方法: Controllers代码 public JsonResult DH_Change(string DH_ID) { List<SelectListItem> Tea ...

  2. JQuery打造下拉框联动效果

    做联动效果,若是用纯JavaScript来做,往往须要辅助页面保存须要刷新的结果集,然后渲染到原页面.考虑将须要动态刷新的内容自己主动拼接到前一个下拉框之后,当前一个下拉框onchange后,同级的后 ...

  3. Easyui多个下拉框联动效果

    好久没写前端了,以前在做多级联动的时候,用的是easyui的tree结构,但是需要一次性全部加载,不是按需加载,性能不好,退而求其之,用多个下拉框做 eayui的combobox  有onSelect ...

  4. 【ASP.NET】 MVC下拉框联动

    这个case主要是我在做项目的时候遇到一个需要根据input控件输入的内容,动态填充dropdown list中的内容, 实现二者联动的需求.在搜索了一些资源后,这篇博客解决了我的问题,所以记录并转载 ...

  5. jquery 实现层级下拉框联动效果 代码

    <select name="fCareId" id="fCareId"> <option selected="selected&qu ...

  6. ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得

    今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新 ...

  7. html年月日下拉联动菜单 年月日三下拉框联动

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  8. 月薪10K必备--C#下拉框联动

                   下拉框联动 很多网站上都用到下拉框联动,就是第一个下拉框没有选择任何项,第二个下拉框就没有选项.这样的做法更加谨慎,更加紧密. 下面我就教大家怎么做下拉框联动: 首先在窗 ...

  9. Ext 下拉框联动第一次显示不正常的问题

    做下拉框联动,异步加载数据,第一次显示时数据不准确,不要在combo_2的下拉框直接绑定store,在combo_1的改变事件里调用下面的方法 function GetAllCustomerBrand ...

随机推荐

  1. django DatabaseFunctions

    from django.db.functions import ... Cast() 转换类型 value = Value.objects.annotate(field_as_float=Cast(' ...

  2. 小程序:web-view采坑指南

    最近负责开发的[广州医保查询]小程序已经发布上线,其中使用web-view组件完成的[在线绑定社保卡]核心流程,遇到了一些坑,现总结如下: 首先,让我们一起看看什么是web-view ? 小程序api ...

  3. [TJOI2007] 线段

    因为每行必须走完才能到下一行,所以我们有两种决策: 1.最后留在线段左端点 2.最后留在线段右端点 这种存在状态转移且多决策的问题用动态规划来进行递推是最好不过的了. 所以我们设\(dp[i][0/1 ...

  4. 【09】循序渐进学 docker:docker swarm

    写在前面的话 至此,docker 的基础知识已经了解的差不多了,接下来就来谈谈对于 docker 容器,我们如何来管理它. docker swarm 在学习 docker swarm 之前,得先知道容 ...

  5. 在CMD中建立一个不能删除的文件

    Windows 下不能够以下面这些字样来命名文件/文件夹,包括:“aux”“com1”“com2”“prn”“con”和“nul”等,因为这些名字都属于设备名称,等价于一个 DOS 设备,如果我们把文 ...

  6. 提交app时候遇到IDFA警告

    1.最近提交app时候遇到如下问题,解决方案: Everything has come to its usual state now. Simply upload your binary as you ...

  7. css 清楚浮动三种方法

    我们可以看到这样一个布局: <style> .left{ width: 200px; height: 200px; background-color: #00ee00; float: le ...

  8. 51 Nod 1024 Set

    1024 矩阵中不重复的元素 1 秒 131,072 KB 10 分 2 级题   一个m*n的矩阵.   该矩阵的第一列是a^b,(a+1)^b,.....(a + n - 1)^b 第二列是a^( ...

  9. 自动更新R软件

    利用R语言命令自动更新R语言软件的版本. install.packages("installr") library(installr) updateR()

  10. JobScheduler布置后台任务以及实现进程保活?

    1.简介 在Android 5.0 提供了一套新的 JobScheduler API,它允许您定义要在以后的某个时间或在指定的条件下(例如,当设备在充电时)异步运行的作业来优化电池寿命. https: ...