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);
  }

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기