>  기사  >  백엔드 개발  >  드롭다운 박스 연동을 구현한 MVC의 예시에 대한 자세한 설명

드롭다운 박스 연동을 구현한 MVC의 예시에 대한 자세한 설명

零下一度
零下一度원래의
2017-07-02 10:32:442423검색

이 글에서는 드롭다운 상자의 연결 효과를 구체적으로 구현하기 위해 MVC를 주로 소개합니다. 관심 있는 친구들은 참고할 수 있습니다.

부서 위치의 연결 효과를 예로 들어보겠습니다. 부서를 선택하는 경우, 부서의 직위와 관련되어 있으므로 드롭다운 상자 작성 방법에 대해서는 자세히 설명하지 않겠습니다.

View: 그 중 dept는

부서

속성이고, deptlist는 부서 드롭다운 상자의 속성입니다. Job은 직위 드롭다운 상자의 속성입니다. 드롭다운 상자 바인딩에 대한 이전 기사

@using (Html.BeginForm("aaai003sch", "aaa", FormMethod.Post, new { @class = "form-horizontal", role = "form" }))
{
 @Html.AntiForgeryToken()
 <p class="modal-body">
  <p class="form-horizontal">
    <p class="form-group">
     @Html.LabelFor(m => m.dept, new { @class = "col-sm-2 control-label" })
      <p 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" })
      </p>
    </p>
    <p class="form-group">
    @ Html.LabelFor(m => m.job, new { @class = "col-sm-2 control-label" })
      <p 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" })
      </p>
    </p>
  </p>
 </p>
</p>
부서가 변경되면 그에 따라 위치도 변경됩니다.

//根据城市获取酒店
 $("#dept").change(function () {
  var url = rootUrl + "aaa/GetJobByDept";
   var dept = $(this).val(); //获取部门的值
   var job = $("#job");
   job.empty();  //清空当前职位的值
   //这句很重要,因我们用的是select2插件,若没有用这个插件可以去掉这句
   job.select2(&#39;val&#39;, &#39;&#39;);
   $.ajax({
    cache: false,
    type: "GET",
    url: url,
    data: { "Dept": dept},
    success: function (data) {
     $.each(data, function (id, option) {

      job.append($(&#39;<option></option>&#39;).val(option.Id).html(option.Name));
     });
     job.trigger(&#39;change&#39;);
    },
    error: function (xhr, ajaxOptions, thrownError) {
     toastr["error"]("请选择部门");
    }
   });
 });

js에서 URL을 실행하면 이 프로그램은

Controller

에 작성됩니다.

  [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=&#39;{0}&#39;", 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);
  }

위 내용은 드롭다운 박스 연동을 구현한 MVC의 예시에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.