MVC实现下拉框联动效果(单选)

 更新时间:2017年06月29日 09:39:18   作者:百变小樱007  
这篇文章主要为大家详细介绍了MVC实现下拉框联动效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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

视图:

其中,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"], 0)
   }).ToList();
   return Json(result, JsonRequestBehavior.AllowGet);
  }

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • ADO.NET通用数据库访问类

    ADO.NET通用数据库访问类

    这篇文章主要为大家介绍了ADO.NET通用数据库访问类,利用ADO.NET的体系架构打造通用的数据库访问通用类,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • .NET框架中间语言IL指令大全

    .NET框架中间语言IL指令大全

    IL是微软.NET平台上衍生出的一门中间语言,.NET平台上的各种高级语言(如C#,VB,F#)的编译器会将各自的代码转化为IL。,其中包含了.NET平台上的各种元素,如“范型”,“类”、、“接口”、“模块”、“属性”等等。
    2016-06-06
  • DiscuzNT 论坛与主站的同步登录与退出

    DiscuzNT 论坛与主站的同步登录与退出

    首先我先说明一下,我参考了这篇文章:http://nt.discuz.net/showtopic-49836.html,在这篇文章启发下简单化。 我装的是2.5Beta版
    2009-03-03
  • 在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数的解决方法

    在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数的解决方法

    有时候,当用户请求一个Controller下的Action,我们希望,在单位时间间隔内,比如每秒,每分钟,每小时,每天,每星期,限制同一个IP地址对某个Action的请求次数,如何做呢?这篇文章主要介绍了在ASP.NET MVC下限制同一个IP地址单位时间间隔内的请求次数,需要的朋友可以参考下
    2024-01-01
  • Cookies的各方面知识(基础/高级)深度了解

    Cookies的各方面知识(基础/高级)深度了解

    Cookies想必所有人都了解本文将围绕Cookies基础知识(什么是Cookies/Cookies如何传递/Cookies如何存储/Cookies如何查看)Cookies高级知识/Cookie的限制等等方方面面深入了解,感兴趣的朋友可以参考下,或许对你学习cookies有所帮助
    2013-02-02
  • Asp.net管理信息系统中数据统计功能的实现方法

    Asp.net管理信息系统中数据统计功能的实现方法

    这篇文章主要介绍了Asp.net管理信息系统中数据统计功能的实现方法,需要的朋友可以参考下
    2017-07-07
  • asp.net Gridview数据列中实现鼠标悬浮变色

    asp.net Gridview数据列中实现鼠标悬浮变色

    Gridview一般朋友们都比较常用,因为它可以方便快捷的实现我们所需的很多功能,代码也比较简洁。平时的项目中这个控件我也比较常用,其中有个功能用到的频率也比较多。所以记录下备忘。
    2010-06-06
  • datagrid行内按钮(更新/删除等)操作实现代码

    datagrid行内按钮(更新/删除等)操作实现代码

    datagrid控件想必大家很是熟悉,本文将介绍下datagrid行内按钮的操作更新/删除等等,感兴趣的你可不要错过了哈,希望本文知识点可以帮助到你
    2013-02-02
  • asp.net js模拟Button点击事件

    asp.net js模拟Button点击事件

    asp.net 中用js模拟Button点击事件,大家可以看下。
    2009-08-08
  • asp.net 执行事务代码

    asp.net 执行事务代码

    asp.net 执行事务的实现代码
    2009-05-05

最新评论