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 相关文章推荐
JScript的条件编译
May 29 Javascript
js获取GridView中行数据的两种方法 分享
Jul 13 Javascript
js(jQuery)获取时间的方法及常用时间类搜集
Oct 23 Javascript
实例讲解JQuery中this和$(this)区别
Dec 08 Javascript
使用javascript实现监控视频播放并打印日志
Jan 05 Javascript
微信小程序 实例应用(记账)详解
Sep 28 Javascript
微信小程序 在线支付功能的实现
Mar 14 Javascript
详解在Javascript中进行面向切面编程
Apr 28 Javascript
使用layer弹窗提交表单时判断表单是否输入为空的例子
Sep 26 Javascript
layui数据表格重载实现往后台传参
Nov 15 Javascript
详解vue中v-on事件监听指令的基本用法
Jul 22 Javascript
在Vue中使用CSS3实现内容无缝滚动的示例代码
Nov 27 Vue.js
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
基于HTTP长连接的&quot;服务器推&quot;技术的php 简易聊天室
2009/10/31 PHP
PHP与服务器文件系统的简单交互
2016/10/21 PHP
thinkphp5 URL和路由的功能详解与实例
2017/12/26 PHP
解决Laravel blade模板转义html标签的问题
2019/09/03 PHP
JavaScript实现动态增加文件域表单
2009/02/12 Javascript
无阻塞加载脚本分析[全]
2011/01/20 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
写得不错的jquery table鼠标经过变色代码
2013/09/27 Javascript
JQuery显示隐藏页面元素的方法总结
2015/04/16 Javascript
jQuery实现的多屏图像图层切换效果实例
2015/05/07 Javascript
jQuery实现径向动画菜单效果
2015/07/17 Javascript
基于javascript制作微信聊天面板
2020/08/09 Javascript
jquery插件treegrid树状表格的使用方法详解(.Net平台)
2017/01/03 Javascript
vue绑定设置属性的多种方式(5)
2017/08/16 Javascript
详解关于vue2.0工程发布上线操作步骤
2018/09/27 Javascript
微信小程序换肤功能实现代码(思路详解)
2020/08/25 Javascript
element 动态合并表格的步骤
2020/12/31 Javascript
vite2.0+vue3移动端项目实战详解
2021/03/03 Vue.js
[01:10:03]OG vs EG 2018国际邀请赛淘汰赛BO3 第三场 8.23
2018/08/24 DOTA
Python制作爬虫采集小说
2015/10/25 Python
python文件特定行插入和替换实例详解
2017/07/12 Python
apache部署python程序出现503错误的解决方法
2017/07/24 Python
python中pytest收集用例规则与运行指定用例详解
2019/06/27 Python
使用python实现ftp的文件读写方法
2019/07/02 Python
python 中Arduino串口传输数据到电脑并保存至excel表格
2019/10/14 Python
基于python+selenium自动健康打卡的实现代码
2021/01/13 Python
HTML5实现页面切换激活的PageVisibility API使用初探
2016/05/13 HTML / CSS
墨尔本照明批发商店:Mica Lighting
2017/12/28 全球购物
Wallis官网:英国女装零售商
2020/01/21 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
核心价值观演讲稿
2014/05/13 职场文书
年检委托书
2014/08/30 职场文书
好人好事演讲稿
2014/09/01 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年工程部工作总结
2015/04/30 职场文书
2016年教育局“我们的节日——端午节”主题活动总结
2016/04/01 职场文书