Jquery实现无刷新DropDownList联动实现代码 - Web前端
作者:98wpeu发布时间:2026-06-10分类:网页前端技术浏览:13
导读:先看html,我们引用JQuery,放两个DropDownlist:复制代码代码如下:<styletype="text/CSS">#ddlemployeeCar...
先看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对您有帮助。
复制代码 代码如下:
<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对您有帮助。
相关推荐
- jquery利用ajax调用后台方法实例 - Web前端
- jquery tab插件制作实现代码 - Web前端
- JQuery最佳实践之精妙的自定义事件 - Web前端
- qTip 基于JQuery的Tooltip插件[兼容性好] - Web前端
- (function($){...})(jQuery)的意思 - Web前端
- jQuery 获取对象 基本选择与层级 - Web前端
- 基于JQuery.timer插件实现一个计时器 - Web前端
- jquery div提示框渐隐弹出与隐藏效果 - Web前端
- JQuery index()方法使用代码 - Web前端
- jQuery的Ajax时无响应数据的解决方法 - Web前端
- 网页前端技术排行
- 最近发表
-
- WordPress随机显示特色图片插件:Random Post Thumbnails
- KeePass实现Chrome浏览器自动填充密码方法一
- LNMP一键包nginx 301强制跳转到https教程
- KeePass实现Chrome浏览器自动填充密码方法二
- #建站# 免费的VPS管理软件Xshell8/Xftp8中文版下载
- 使用Xshell 8连接VPS教程_电脑登录vps的方法
- WordPress评论界面添加烟花????效果
- 不同浏览器书签同步方案:坚果云+Floccus_详细使用教程
- iOS端KeePassXC客户端APP:Strongbox Password Safe
- 给WordPress评论中的Gravatar头像图片添加ALT属性


