mvc2中的二级联动(非用户控件)

我要达到的效果是在前面的下拉列表中选择机构,在后面的下拉列表中出现对应的部门。在部门表Dept中包含OrgID,但不是外键。在mvc中一般不设有外键。

helper中代码:

 

        /// <summary>
        /// 根据机构id读取部门
        /// </summary>
        /// <param name="id"></param>
        /// <returns></returns>
        public IList<Dept> GetDeptByOrgID(int id)
        {
            using (UUMContext uc = new UUMContext())
            {
                var dept = from a in uc.Depts select a;
                if (id >= 0)
                {
                    dept = dept.Where(a => a.OrgID == id);
                }
                IList<Dept> d = dept.ToList<Dept>();
                return d;
            }
        }

controller中代码:

public ActionResult GetDeptByOrg(string orgId)
        {
            int orgid = 0;
            try
            {
                orgid = Convert.ToInt32(orgId);
            }
            catch
            {
                return Json("");
            }
            return Json(GetDeptByOrgId(orgid, 0), JsonRequestBehavior.AllowGet);
        }
        /// <summary>
        /// 根据机构id获取部门
        /// </summary>
        /// <param name="orgId"></param>
        /// <param name="defVal"></param>
        /// <returns></returns>
        public SelectList GetDeptByOrgId(int orgId, int defVal)
        {
            IList<Dept> items = deptHelper.GetDeptByOrgID(orgId);
            SelectList lists = new SelectList(items, "DeptId", "DeptName", defVal);
            return lists;
        }

View中代码:

<script type="text/javascript">
    $(function () {
        $("#OrgID").change(function () {
            GetDept($(this).val()); 
        });
    });

    function GetDept(orgid) {
        $("#DeptID").empty();
       //$("#DeptID").append("<option value='0' selected='selected'>无</option>");
        var option = {

            url: "/Dept/GetDeptByOrg",

            type: 'Get',

            chche: false,

            dataType: 'json',

            data: { orgId: orgid },

            success: function (data) {  //成功事件

                $.each(data, function (i, item) {

                    $("<option></option>")

                            .val(data[i].Value)

                            .text(data[i].Text)

                            .appendTo($("#DeptID"));

                });

            },

            error: function (XMLHttpRequest, textStatus, errorThrown) { //发送失败事件

                alert(textStatus);
            }

        };

        //进行异步传输

        $.ajax(option);
    }
</script>

若要查看id,可查看源文件中的id值,保证jquery中的id值与之相同。

 

转载于:https://www.cnblogs.com/SunYiwei/archive/2012/05/23/2514948.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值