ホームページ  >  記事  >  バックエンド開発  >  MVCによるドロップダウンボックス連携の実装例を詳しく解説

MVCによるドロップダウンボックス連携の実装例を詳しく解説

零下一度
零下一度オリジナル
2017-07-02 10:32:442420ブラウズ

この記事では主にドロップダウン ボックスの連携効果を実現するための MVC を詳しく紹介します。興味のある方は参考にしてください。

部門の位置を例に挙げます。部門を選択するときは、部門の位置に関係します。詳しくは、

Viewの記事を参照してください。このうち、dept は部門の属性です

、deptlist は部門の属性ドロップダウン ボックス、Job は役職の属性、joblist は役職のドロップダウン ボックスの属性を参照してください。ドロップダウンボックスのバインドに関する前の記事

@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"]("请选择部门");
    }
   });
 });

URLをjsで実行すると、このプログラムは
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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。