首页 > 代码库 > MVC 下拉列表三级联动

MVC 下拉列表三级联动

      当前所做的项目,关于数据库设计的时候有点小意思,表A是三个联合主键,key1,key2,key3,表B是四个联合主键 key1,key2,key3,key4,其中表B的联合外键关联表A对应的联合主键,这样一来,对表B做新增的时候 就需要几个小步骤:

①:界面初始化,返回全部不重复的 key1、key2、key3

②:界面勾选key1,触发chang事件,采用getJson 方式将参数key1的值发送到Action中 ,同时设置下拉列表b 的内容为空,$("#b").html(‘‘);

控制器做处理后,返回 key2的集合

③:界面的回调函数中,给下拉列表b 用append 的方式加入 value 值 和 文本值
④:界面勾选key2,触发change事件,采用getJson 方式将参数key1、key2 的值发送到Action中,同样设置下拉列表c的内容为空,$("#c").html(‘‘);
控制器做处理后,返回key3的集合

⑤:界面回调函数中,给下拉列表c 用append的方式加入 value 值 和文本值

⑥:判断key4 是否在表B中存在,不存在,插入数据,返回提示

从着手项目以来,最开始总想用代码来说明,虽然最后是实现了功能,但回过头看起来,简直是惨不忍睹,实在是有删除从写的冲动,越来越久,才发现,先考虑清楚逻辑,就是深度思考是第一步,虽然说起来很容易,往往实践起来很难

--主表TMain   从表TMinoruse TestBookalter table TMinoradd constraint Tminor_fk  foreign key(Key1,Key2,Key3)  references TMain(Key1,Key2,Key3)

第一步: 将三级联动的下拉列表封装到一个类中

    public class TMainResult    {        /// <summary>        /// 一级下拉框        /// </summary>        public string Key1 { get; set; }        /// <summary>        /// 二级下拉框        /// </summary>        public string Key2 { get; set; }        /// <summary>        /// 三级下拉框        /// </summary>        public string Key3 { get; set; }    }

第二步:采用Linq的方式 在控制器中设置列表数据值

 

MVC 下拉列表三级联动