jQuery Ajax MVC 下拉框联动
无刷新下拉框联动方法:
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 下拉框联动的更多相关文章
- SSM框架,在Html界面利用ajax,json,jQuery实现省市区下拉框联动
1.先生成省市区表格 2.建立实体类 3.在html画出下拉框 <select id="province"> <option value="" ...
- MVC 下拉框联动效果(单选)
下拉框联动效果,我们以部门--职位为例,选择部门时,关联到该部门的职位.下拉框的写法就不多说了,详细请参照前文. 视图: 其中,dept是部门的属性,deptlist是部门下拉框的属性,job是职位的 ...
- 使用jquery Ajax异步刷新 下拉框
一个下拉框 <label>产品类型:</label> <select id="protype" name="protype" on ...
- jQuery Ajax实现下拉框无刷新联动
HTML代码: @{ Layout = null; } @using DAL; @using System.Data; @{ AreaDal areaDal = new AreaDal(); stri ...
- 【ASP.NET】 MVC下拉框联动
这个case主要是我在做项目的时候遇到一个需要根据input控件输入的内容,动态填充dropdown list中的内容, 实现二者联动的需求.在搜索了一些资源后,这篇博客解决了我的问题,所以记录并转载 ...
- jquery 实现层级下拉框联动效果 代码
<select name="fCareId" id="fCareId"> <option selected="selected&qu ...
- Ajax jQuery下拉框联动案例
需求: 使用ajax和jQuery实现下拉框联动. 注意:需要加入jquery-2.1.1.min.js 前台 <!DOCTYPE html> <html> <head& ...
- ajax技术实现登录判断用户名是否重复以及利用xml实现二级下拉框联动,还有从数据库中获得
今天学了ajax技术,特地在此写下来作为复习. 一.什么是ajax? 客户端(特指PC浏览器)与服务器,可以在[不必刷新整个浏览器]的情况下,与服务器进行异步通讯的技术 即,AJAX是一个[局部刷新 ...
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
随机推荐
- JavaWeb前端:CSS
CSS 主要是要熟悉的掌握选择器 Div 的盒模型: 整个网页被切割成一个一个盒子,盒子可以套盒子,每个盒子通过以下几个主要属性来控制显示位置: 边框 Border-top, Border-botto ...
- for(String s:v)
s是遍历后赋值的变量,v是要遍历的list.可以通过以下语句进行测试: List<String> v=new ArrayList(); v.add("one"); v. ...
- Mac终端下打开sublime
我安装的sublime 2终端输入如下命令 alias subl=\''/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl ...
- PHP 中:: -> self $this 操作符的区别
访问PHP类中的成员变量或方法时, 如果被引用的变量或者方法被声明成const(定义常量)或者static(声明静态),那么就必须使用操作符::, 反之如果被引用的变量或者方法没有被声明成 const ...
- Windows Store App 网络通信 HttpWebRequest
如果希望更好地控制HTTP请求,可以使用System.Net类库中的HttpWebRequest类,该类对HTTP协议进行了完整的封装,并且提供了很多对HTTP协议中的 Header.Content和 ...
- PDF 补丁丁 0.5.0.2731 发布(增加去除页面表单和链接水印功能)
新的版本增加了简单的删除表单和链接批注的功能,使用该功能可去掉某些软件打上的水印. 在 PDF 文档选项中选中“清除页面所有表单”和“清除页面所有链接批注”项后,程序将会删除页面的表单和链接批注. 效 ...
- IO 相关配置参数
INNODB I/O相关配置 记录日志为顺序I/O,刷新日志到数据文件为随机操作.顺序操作性能快于随机IO. innodb_log_file_size innodb_log_files_in_grou ...
- linux 命令行启动虚拟机
vmrun -T ws start /root/vmware/Windows\ Server\ 2012/Windows\ Server\ 2012.vmx nogui
- Eclipse 显示所有文件
Package Explorer -> View Menu -> Filters -> uncheck .* resources http://stackoverflow.com/q ...
- Emmet 使用说明。
Emmet for Sublime Text Official Emmet plugin for Sublime Text. How to install Available actions Exte ...