无刷新下拉框联动方法:

Controllers代码

       public JsonResult DH_Change(string DH_ID)
{
List<SelectListItem> TeamLeaderList = FinanceDB.Get_TeamLeaderList(DH_ID);
return Json(TeamLeaderList);
} public JsonResult TL_Change(string TL_ID)
{
List<SelectListItem> SalesList = FinanceDB.Get_SalesList(TL_ID);
return Json(SalesList);
}

后台获取并返回List<SeleceListItem>

public List<SelectListItem> Get_TeamLeaderList(string DH_ID)
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem { Value = "", Text = "All" }); string str = "SELECT distinct child_Staff_ID, child_name ";
str += "FROM VW_CASH_SLX_USER_TREE t inner join SYN_SLX_USERINFO u ";
str += "ON t.child_Staff_ID = u.cash_staff_id ";
str += "INNER JOIN dbo.SYN_SLX_USERSECURITY su on u.userid = su.userid ";
str += "where su.ISMANAGER = 'T' and ISNULL(child_staff_id, '') <> '' "; if (string.IsNullOrEmpty(DH_ID))
{
str += "and t.Root_Staff_ID in (select parm_value from parm_tbl where parm_group = 'SALES_DEPT_HEADER') order by child_name";
}
else
{
str += "and t.Root_Staff_ID in ('" + DH_ID + "') order by child_name";
} try
{
using (SqlConnection conn = new SqlConnection(connstr))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = str;
cmd.CommandType = CommandType.Text;
SqlDataReader objDR = cmd.ExecuteReader(); while (objDR.Read())
{
string select_text = objDR["child_name"].ToString();
string select_value = objDR["child_Staff_ID"].ToString();
list.Add(new SelectListItem { Value = select_value, Text = select_text });
} cmd.Dispose();
}
}
catch (Exception e)
{
throw e;
}
return list;
} public List<SelectListItem> Get_SalesList(string TL_ID)
{
List<SelectListItem> list = new List<SelectListItem>();
list.Add(new SelectListItem { Value = "", Text = "All" }); string str = "SELECT distinct child_Staff_ID, child_name ";
str += "FROM VW_CASH_SLX_USER_TREE t ";
str += "where ISNULL(child_staff_id, '') <> '' and ";
str += "t.Root_Staff_ID in ( "; if (string.IsNullOrEmpty(TL_ID))
{
str += "select parm_value from parm_tbl where parm_group = 'SALES_DEPT_HEADER' ) order by child_name ";
}
else
{
str += "'" + TL_ID + "') order by child_name";
} try
{
using (SqlConnection conn = new SqlConnection(connstr))
{
if (conn.State == ConnectionState.Closed)
{
conn.Open();
}
SqlCommand cmd = conn.CreateCommand();
cmd.CommandText = str;
cmd.CommandType = CommandType.Text;
SqlDataReader objDR = cmd.ExecuteReader(); while (objDR.Read())
{
string select_text = objDR["child_name"].ToString();
string select_value = objDR["child_Staff_ID"].ToString();
list.Add(new SelectListItem { Value = select_value, Text = select_text });
} cmd.Dispose();
}
}
catch (Exception e)
{
throw e;
}
return list; }

Ajax 动态更新

// Report sales change.
function DH_onChange() {
var dh_id = $("#salesdephead_report").val();
$.ajax({
type: 'get',
url: '/Reports.mvc/DH_Change/',
data: { DH_ID: dh_id },
contentType: 'application/json;charset=uft-8',
dataType: 'json',
success: function(data) {
var selectlist =data;
$("#teamleader_report").empty();
for(i=0;i<selectlist.length;i++)
{
$("#teamleader_report").append("<option value='"+data[i].Value+"'>"+data[i].Text+"</option>");
}
},
error: function() {
alert("faile to request data");
}
});
TL_onChange(dh_id);
} function TL_onChange(DH_ID) {
var tl_id;
if (DH_ID != null && DH_ID != "")
tl_id = $("#salesdephead_report").val();
else
tl_id = $("#teamleader_report").val();
$.ajax({
type: 'post',
url: '/Reports.mvc/TL_Change/',
data: { TL_ID: tl_id },
dataType: 'json',
success: function(data) {
var selectlist = data;
$("#requester_report").empty();
for (i = 0; i < selectlist.length; i++) {
$("#requester_report").append("<option value='" + data[i].Value + "'>" + data[i].Text + "</option>");
}
},
error: function() {
alert("faile to request data");
}
})
}
//

前台HTML代码

Sales Department Head<br />销售部门审批人:
<%=Html.DropDownList("salesdephead_report", null, new { @style = "width:125px;", onchange = "DH_onChange()" })%> Team Leader<br />团队组长:
<%=Html.DropDownList("teamleader_report", null, new { @style = "width:125px;", onchange = "TL_onChange('')" })%>

但是我们都知道,JQuery默认是异步执行的,所谓异步就是在ajax提交的过程当中,程序已经在执行下面的代码,两者是同时在进行的。有时候,我们却不希望ajax异步执行,而是想要等ajax返回数据后再作操作,那就需要做一点点的小改动。

Jquery的ajax还有async这么一个控制同步或者异步的属性。

再ajax中添加“ async:false, ”, 就会变成是同步执行了,也就是再ajax返回数据后才继续下面的代码。

其实除了修改属性async的方法外,还能通过传入一个函数解决问题。

以上,是今天所用到得一点知识,希望记录下有帮助到人啦。

jQuery Ajax MVC 下拉框联动的更多相关文章

  1. SSM框架,在Html界面利用ajax,json,jQuery实现省市区下拉框联动

    1.先生成省市区表格 2.建立实体类 3.在html画出下拉框 <select id="province"> <option value="" ...

  2. MVC 下拉框联动效果(单选)

    下拉框联动效果,我们以部门--职位为例,选择部门时,关联到该部门的职位.下拉框的写法就不多说了,详细请参照前文. 视图: 其中,dept是部门的属性,deptlist是部门下拉框的属性,job是职位的 ...

  3. 使用jquery Ajax异步刷新 下拉框

    一个下拉框 <label>产品类型:</label> <select id="protype" name="protype" on ...

  4. jQuery Ajax实现下拉框无刷新联动

    HTML代码: @{ Layout = null; } @using DAL; @using System.Data; @{ AreaDal areaDal = new AreaDal(); stri ...

  5. 【ASP.NET】 MVC下拉框联动

    这个case主要是我在做项目的时候遇到一个需要根据input控件输入的内容,动态填充dropdown list中的内容, 实现二者联动的需求.在搜索了一些资源后,这篇博客解决了我的问题,所以记录并转载 ...

  6. jquery 实现层级下拉框联动效果 代码

    <select name="fCareId" id="fCareId"> <option selected="selected&qu ...

  7. Ajax jQuery下拉框联动案例

    需求: 使用ajax和jQuery实现下拉框联动. 注意:需要加入jquery-2.1.1.min.js 前台 <!DOCTYPE html> <html> <head& ...

  8. ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得

    今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术  即,AJAX是一个[局部刷新 ...

  9. Java Swing应用程序 JComboBox下拉框联动查询

    在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...

随机推荐

  1. 深入理解javascript系列,读书笔记

    深入理解JavaScript系列(2):揭秘命名函数表达式 1.讲了函数声明和函数表达式的区别,包括一些在函数提升上的区别 2.如果给函数表达式的函数也取名,会在调试的时候受益 3.不要在block( ...

  2. Sprint1(第一天11.14)

    Sprint1第一阶段 1.类名:软件工程-第一阶段 2.时间:11.14-11.23 3.选题内容:web版-餐厅到店点餐系统 4.团队博客地址: http://www.cnblogs.com/qu ...

  3. python类中super()和__init__()的区别

    class Base(object):     def __init__(self): print 'Base create' class childB(Base): def __init__(sel ...

  4. 复制物料(参考的MMCC想法)

    MMCC这个事务码没用过,也是才听到的,都是业务搞起来的...然后感觉这个东西有点意思,就搞搞咯 网上找的一篇文章,自己修改的.改了默认收货工厂为创建时的工厂,因为这边一直报收货工厂必输...不管是不 ...

  5. spring.net 配置文件需要注意换行问题

    今天在做Spring.NET Demo时写配置文件写ObjectNames 节点的Value成这样 <object id="ProxyCreator" type=" ...

  6. Spring相关

    一.Spring中ApplicationContext加载机制加载器目前有两种选择:ContextLoaderListener和ContextLoaderServlet. 这两者在功能上完全等同,只是 ...

  7. javascript 实现tab菜单切换

    <!DOCTYPE html> <html> <head> <title></title> </head> <body s ...

  8. split 分割 字符串(分隔符如:* ^ : | , .) 及注意点

    http://blog.sina.com.cn/s/blog_b6487d470101g0hp.html [1]单个符号作为分隔符         String address="上海|上海 ...

  9. 安装LoadRunner提示缺少vc2005_sp1_with_atl..

    装自动化负载测试工具LoadRunner前,需要预先安装其运行的基础环境.如:安装LoadRunner 11时就需要先安装Micrsoft Visual C++ 2005 SP1.C++ 2008运行 ...

  10. [转] 微软源代码管理工具TFS2013安装与使用详细图文教程(Vs2013)

    这篇文章联合软件小编主要介绍了微软源代码管理工具TFS2013安装与使用图文教程,本文详细的给出了TFS2013的安装配置过程.使用教程,需要的朋友可以参考下 最近公司新开发一个项目要用微软的TFS2 ...