dhl:ASP.NET MVC + Jquery实现Ajax下拉框数据2或3级联动(+用户控件)

注明:ASP.NET MVC 2.0 ,作者:杜宏雷

页面:

<%Html.RenderAction("LessonGroup","Home"); %> 

用户控件:

 

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl" %>
<%@ Import Namespace="Taoxue.Entities" %>
<script type="text/javascript" language="javascript">
    $(document).ready(function() {
        $("#firstGroup").change(function () { GetSecondGroup() });
    });
    
    function GetSecondGroup() {
        $("#secondGroup").empty();
        var url = "/Home/GetSecondLessonGroupList/" + $("#firstGroup").val();
        $.getJSON(url, function (data) {
            //alert(data);
            $.each(data, function (i, item) {
                $("<option></option>")
                    .val(item["KID"])
                    .text(item["MemberName"])
                    .appendTo($("#secondGroup"));
            });
            //GetThreeGroup(); 或3级联动 
        });

    }
</script>
<div class="cx_left">
    <select name="firstGroup" id="firstGroup" class="listwidth">
        <%var lessonGroups = ViewData["firstGroup"] as List<Dictionary>;
          if (lessonGroups != null && lessonGroups.Count > 0)
          {
              foreach (Dictionary dictionary in lessonGroups)
              {
        %>        
        <option value="<%=dictionary.KID%>">
            <%=dictionary.MemberName%></option>
        <%
}
      }
        %>
    </select>
</div>
<div class="cx_middle">
    <select id="secondGroup" name="secondGroup" class="listwidth">
                <%var secondGroup = ViewData["secondGroup"] as List<Dictionary>;
                  if (secondGroup != null && secondGroup.Count > 0)
          {
              foreach (Dictionary dictionary in secondGroup)
              {
        %>        
        <option value="<%=dictionary.KID%>">
            <%=dictionary.MemberName%></option>
        <%
}
      }
        %>
    </select>
</div>

 

HomeController :

 [ActionName("LessonGroup")]
        [ChildActionOnly]
        public ActionResult LessonGroupControl()
        {
            var taokeClient = new TaokeService.TaokeClient();
            var allLessonGroupList = taokeClient.GetAllLessonGroupList();
            List<Dictionary> firstGroup = allLessonGroupList.Where(uu=>uu.ParentCode==string.Empty).ToList();
            Dictionary first = firstGroup.FirstOrDefault();
            string memberCode = (first != null) ? first.MemberCode : "";
            List<Dictionary> secondGroup = allLessonGroupList.Where(uu => uu.ParentCode == memberCode).ToList();
            ViewData["firstGroup"] = firstGroup;
            ViewData["secondGroup"] = secondGroup;
            return PartialView("LessonGroup");
        }
        /// <summary>
        /// 2级联动下拉框的数据
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public ActionResult GetSecondLessonGroupList(int id)
        {
            if(!Request.IsAjaxRequest())
            {
                return Content("非法调用,不合法行为!");
            }
            var taokeClient = new TaokeService.TaokeClient();
            var allLessonGroupList = taokeClient.GetAllLessonGroupList();
            var curGroup = allLessonGroupList.Where(uu => uu.KID == id).FirstOrDefault();
            string memberCode = (curGroup != null) ? curGroup.MemberCode : "";
            var v = from l in allLessonGroupList where l.ParentCode == memberCode select l;
            List<Dictionary> list = v.ToList();
            return Json(list, JsonRequestBehavior.AllowGet);
        }

数据:

前台:

 

  

posted @ 2010-09-16 15:04  肚肚  阅读(854)  评论(0编辑  收藏  举报