Jquery实现无刷新DropDownList联动实现代码


Posted in Javascript onMarch 08, 2010

先看HTML,我们引用Jquery,放两个DropDownList:

<style type="text/css"> 
#ddlEmployeeCars 
{ 
display:none; 
position:absolute; 
top:50px; 
left:9px; 
} 
</style> 
<script language="javascript" type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> 
 <asp:DropDownList ID="ddlEmployee" runat="server" AppendDataBoundItems="true"> 
<asp:ListItem Text="(Please Select)" Value="0" Selected="True" /> 
</asp:DropDownList> 
<asp:DropDownList ID="ddlEmployeeCars" runat="server"> 
</asp:DropDownList>

接着写核心的Script:
<script language="javascript" type="text/javascript"> 
$(function() { 
var $ddl = $("select[name$=ddlEmployee]"); 
var $ddlCars = $("select[name$=ddlEmployeeCars]"); 
$ddl.focus(); 
$ddl.bind("change keyup", function() { 
if ($(this).val() != "0") { 
loadEmployeeCars($("select option:selected").val()); 
$ddlCars.fadeIn("slow"); 
} else { 
$ddlCars.fadeOut("slow"); 
} 
}); 
}); function loadEmployeeCars(selectedItem) { 
$.ajax({ 
type: "POST", 
url: "Default.aspx/FetchEmployeeCars", 
data: "{id: " + selectedItem + "}", 
contentType: "application/json; charset=utf-8", 
dataType: "json", 
async: true, 
success: function Success(data) { 
printEmployeeCars(data.d); 
} 
}); 
} 
function printEmployeeCars(data) { 
$("select[name$=ddlEmployeeCars] > option").remove(); 
for (var i = 0; i < data.length; i++) { 
$("select[name$=ddlEmployeeCars]").append( 
$("<option></option>").val(data[i].Id).html(data[i].Car) 
); 
} 
} 
</script>

非常简单,检查值是不是0,然后ajax传值到server,成功后remove掉原来的option,append新的option.
看下WebPage的code:
public partial class _Default : System.Web.UI.Page 
{ 
[WebMethod] 
public static List<EmployeeCar> FetchEmployeeCars(int id) 
{ 
var emp = new EmployeeCar(); 
return emp.FetchEmployeeCars(id); 
} protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
{ 
var employees = new Employee(); 
ddlEmployee.DataSource = employees.FetchEmployees(); 
ddlEmployee.DataTextField = "Surname"; 
ddlEmployee.DataValueField = "Id"; 
ddlEmployee.DataBind(); 
} 
} 
}

我们的Datasource class:
public class EmployeeCar 
{ 
public int Id { get; set; } 
public string Car { get; set; } private static List<EmployeeCar> LoadData() 
{ 
return new List<EmployeeCar> 
{ 
new EmployeeCar {Id = 1, Car = "Ford"}, 
new EmployeeCar {Id = 1, Car = "Holden"}, 
new EmployeeCar {Id = 1, Car = "Honda"}, 
new EmployeeCar {Id = 2, Car = "Toyota"}, 
new EmployeeCar {Id = 2, Car = "General Motors"}, 
new EmployeeCar {Id = 2, Car = "Volvo"}, 
new EmployeeCar {Id = 3, Car = "Ferrari"}, 
new EmployeeCar {Id = 3, Car = "Porsche"}, 
new EmployeeCar {Id = 3, Car = "Ford2"} 
}; 
} 
public List<EmployeeCar> FetchEmployeeCars(int id) 
{ 
return (from p in LoadData() 
where p.Id == id 
select p).ToList(); 
} 
} 
public class Employee 
{ 
public int Id { get; set; } 
public string GivenName { get; set; } 
public string Surname { get; set; } 
public List<Employee> FetchEmployees() 
{ 
return new List<Employee> 
{ 
new Employee {Id = 1, GivenName = "Tom", Surname = "Hanks"}, 
new Employee {Id = 2, GivenName = "Hugh", Surname = "Jackman"}, 
new Employee {Id = 3, GivenName = "Petter", Surname = "Liu"} 
}; 
} 
public Employee FetchEmployee(int id) 
{ 
var employees = FetchEmployees(); 
return (from p in employees 
where p.Id == id 
select p).First(); 
} 
}

完了。希望这篇POST对您有帮助。
Javascript 相关文章推荐
JS模拟的QQ面板上的多级可展开的菜单
Oct 10 Javascript
Jquery中删除元素的实现代码
Dec 29 Javascript
使用jQuery重置(reset)表单的方法
May 05 Javascript
jquery实现保存已选用户
Jul 21 Javascript
JavaScript截取、切割字符串的技巧
Jan 07 Javascript
javascript实现延时显示提示框特效代码
Apr 27 Javascript
JavaScript中的this引用(推荐)
Aug 05 Javascript
Bootstrap Modal遮罩弹出层代码分享
Nov 21 Javascript
jQuery使用unlock.js插件实现滑动解锁
Apr 04 jQuery
老生常谈combobox和combotree模糊查询
Apr 17 Javascript
基于cropper.js封装vue实现在线图片裁剪组件功能
Mar 01 Javascript
js this 绑定机制深入详解
Apr 30 Javascript
JavaScript this调用规则说明
Mar 08 #Javascript
javascript 放大镜 v1.0 基于Yui2 实现的放大镜效果
Mar 08 #Javascript
JavaScript中的闭包原理分析
Mar 08 #Javascript
ExtJS GridPanel 根据条件改变字体颜色
Mar 08 #Javascript
JavaScript 滚轮事件使用说明
Mar 07 #Javascript
javascript下4个跨浏览器必备的函数
Mar 07 #Javascript
Zero Clipboard js+swf实现的复制功能使用方法
Mar 07 #Javascript
You might like
PHP生成短网址方法汇总
2016/07/12 PHP
tp5 实现列表数据根据状态排序
2019/10/18 PHP
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
网站繁简切换的JS遇到页面卡死的解决方法
2014/03/12 Javascript
javascript实现des解密加密全过程
2014/04/03 Javascript
基于JQuery制作可编辑的表格特效
2014/12/23 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JavaScript编程中实现对象封装特性的实例讲解
2016/06/24 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
微信开发 消息推送实现代码
2016/10/21 Javascript
微信小程序  自定义创建详细介绍
2016/10/27 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
JavaScript获取用户所在城市及地理位置
2018/04/21 Javascript
Vue页面刷新记住页面状态的实现
2019/12/27 Javascript
html2canvas属性和使用方法以及如何使用html2canvas将HTML内容写入Canvas生成图片
2020/01/12 Javascript
如何用JS模拟实现数组的map方法
2020/07/30 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
jQuery编写QQ简易聊天框
2020/08/27 jQuery
如何封装Vue Element的table表格组件
2021/02/06 Vue.js
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
六个窍门助你提高Python运行效率
2015/06/09 Python
python实现pdf转换成word/txt纯文本文件
2018/06/07 Python
Python反射和内置方法重写操作详解
2018/08/27 Python
Python学习笔记之文件的读写操作实例分析
2019/08/07 Python
如何使用Python破解ZIP或RAR压缩文件密码
2020/01/09 Python
HTML5中的Article和Section元素认识及使用
2013/03/22 HTML / CSS
使用html5 canvas创建太空游戏的示例
2014/05/08 HTML / CSS
蒂芙尼澳大利亚官方网站:Tiffany&Co. Australia
2017/08/27 全球购物
中医药大学市场营销专业自荐信
2013/09/29 职场文书
餐饮管理自我介绍信
2014/01/15 职场文书
优秀教师感人事迹材料
2014/05/04 职场文书
货物运输服务质量承诺书
2014/05/29 职场文书
2014年电信员工工作总结
2014/12/19 职场文书
职称评定个人总结
2015/03/05 职场文书
反腐倡廉影片观后感
2015/06/08 职场文书
《分一些蚊子进来》读后感3篇
2020/01/09 职场文书