<
asp
:
DropDownList
ID
="ddl1"
runat
="server"
Width
="100px" ></
asp
:
DropDownList
>
<
asp
:
DropDownList
ID
="ddl2"
runat
="server"
Width
="100px" ></
asp
:
DropDownList
>
<
asp
:
DropDownList
ID
="ddl3"
runat
="server"
Width
="100px" ></
asp
:
DropDownList
>
js:
<
script
src
="js/jquery-1.4.2.min.js"
type
="text/javascript" ></
script
>
<
script
type
="text/javascript">
$(document).ready(function
() {
GetA();
$("#ddl1"
).change(function
() { GetB(); });
$("#ddl2"
).change(function
() { GetC(); });
});
function
GetA()
{
$("#ddl1"
).html(""
);
$("#ddl1"
).append("<option value='-1' selected='selected'>请选择...</option>"
);
//$("select[name$=ddl1] > option:selected").remove();
var
strId = 0;
$.getJSON("LoadClass.ashx?ddlId="
+ strId, function
(data) {
for
(var
i = 0; i < data.length; i++) {
$("select[name$=ddl1]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
};
GetB();
});
}
function
GetB()
{
$("#ddl2"
).html(""
); $("#ddl3"
).html(""
);
var
strId = $("#ddl1"
).attr("value"
);
if
(strId != 0) {
$.getJSON("LoadClass.ashx?ddlId="
+ strId, function
(data) {
for
(var
i = 0; i < data.length; i++) {
$("select[name$=ddl2]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
};
GetC();
});
}
}
function
GetC()
{
$("#ddl3"
).html(""
);
var
strId = $("#ddl2"
).attr("value"
);
if
(strId != 0) {
$.getJSON("LoadClass.ashx?ddlId="
+ strId, function
(data) {
for
(var
i = 0; i < data.length; i++) {
$("select[name$=ddl3]"
).append($("<option></option>"
).val(data[i].ID).html(data[i].Cname));
};
});
}
}
</
script
>
LoadClass.ashx:
<%
@
WebHandler
Language
="C#"
Class
="LoadClass"
%>
using
System;
using
System.Web;
using
System.Text;
using
System.Data;
public class
LoadClass
: IHttpHandler
{
public void
ProcessRequest (HttpContext
context) {
// 数组 [{"ID":"275","Cname":"A1"},{"ID":"319","Cname":"A2"},{"ID":"322","Cname":"A3"}]
int
strId = Convert
.ToInt32(context.Request["ddlId"
]);
string
strSQL = "select * from Class where parent_Ptr="
+ strId + " order by classOrder asc "
;
db
d = new
db
();
DataTable
dt = d.getDT(strSQL);
StringBuilder
strClass = new
StringBuilder
();
if
(dt != null
)
{
strClass.Append("["
);
for
(int
i = 0
; i < dt.Rows.Count; i++)
{
strClass.Append("{"
);
strClass.Append("\"ID\":\""
+ dt.Rows[i]["id"
].ToString() + "\","
);
strClass.Append("\"Cname\":\""
+ dt.Rows[i]["classCname"
].ToString() + "\""
);
if
(i != dt.Rows.Count - 1
)
{
strClass.Append("},"
);
}
}
}
strClass.Append("}"
);
strClass.Append("]"
);
context.Response.ContentType = "application/json"
;
context.Response.ContentEncoding = Encoding
.UTF8;
context.Response.Write(strClass.ToString());
context.Response.End();
}
public bool
IsReusable {
get
{
return false
;
}
}
}
注意:
//后台只能获取value值,不能直接获取text,需要通过js、控件中转
//结果:275 276 277
Label1.Text = Request.Form[ddl1.UniqueID] + " "
+ Request.Form["ddl2"
] + " "
+ Request.Form[ddl3.ClientID.Replace("_"
, "$"
)] ;
遇到的问题:
下拉框text的值通过HiddenField
控件中转
<
asp
:
HiddenField
ID
="HiddenField1"
runat
="server" />
<
asp
:
HiddenField
ID
="HiddenField2"
runat
="server" />
<
asp
:
HiddenField
ID
="HiddenField3"
runat
="server" />
把选中下拉框的值赋予隐藏控件中:
<
script
type
="text/javascript">
var
Key1 = $("#ddl1>option:selected"
).val();
$('#HiddenField1'
).val(Key1);
var
Key2 = $("#ddl2>option:selected"
).val();
$('#HiddenField2'
).val(Key2);
var
Key3 = $("#ddl3>option:selected"
).val();
$('#HiddenField3'
).val(Key3);
</
script
>
选择下拉框后 动态赋值到HiddenField
控件中的值 无法与下拉框选中的值相对应!
可能与初始化有关,赋值这段代码应该放到什么地方呢?或者有什么好的方法,欢迎讨论?
http://www.cnblogs.com/zengxiangzhan/archive/2010/02/21/1670646.html
分享到:
相关推荐
本篇文章将深入讲解如何使用JQuery来实现这种无刷新的省市三级联动效果。 首先,我们需要理解JQuery的基本概念。JQuery是一个JavaScript库,它简化了JavaScript的DOM操作、事件处理、动画设计以及Ajax交互。其语法...
这三种技术结合在一起,常用于实现动态的、交互性强的网页功能,如我们这里提到的“省市三级联动”。 省市三级联动通常指的是在网页上选择省份时,会自动加载对应的市,选择市后则加载相应的区或县。这种功能在注册...
无刷新三级联动是一种常见的网页交互技术,主要用于提升用户体验,让用户在选择某一选项时,其他相关联的下拉菜单能够即时更新而无需整个页面重新加载。在这个例子中,它结合了ACCESS数据库,使得数据检索和展示更为...
综上所述,这个项目展示了如何使用Struts2作为后端控制器,jQuery处理前端交互,Ajax实现异步数据传输,以及JSON作为数据交换格式,共同构建一个功能完善的三级联动菜单。开发者需要对这些技术有深入理解,才能有效...
这里的“三级联动”是指在网页中,三个下拉菜单或者选择框之间通过Ajax进行数据同步和更新,用户在一级菜单中选择一个选项后,二级菜单会根据一级的选择自动加载相关数据,同样,选择二级菜单后,三级菜单也会随之...
综上所述,全国城市Ajax无刷新三级联动涉及了前端开发中的多个关键技术,包括Ajax通信、JSON数据处理、DOM操作、事件处理、异步请求以及兼容性和安全性考虑。通过掌握这些技术,开发者可以创建出更加流畅、高效的...
SSM+Maven实现无刷新三级联动是一种常见的前端与后端交互技术,广泛应用于Web开发中,例如在选择地址、分类等场景。SSM是指Spring、SpringMVC和MyBatis三大框架的组合,Maven则是一个项目管理工具。本项目通过这四个...
**jQuery省市区城市三级联动插件详解** 在Web开发中,常常需要实现省市区三级联动效果,以便用户在填写表单时能方便地选择所在地区。这款强大的jQuery插件正为此目的而设计,它提供了简单易用的API,使得开发者能够...
在网页开发中,"js版无刷新省市县三级联动"是一种常见的交互设计,它使得用户在选择省份、城市和区县时无需等待页面刷新,提高了用户体验。这种技术主要基于JavaScript实现,结合HTML和CSS,利用AJAX(异步...
在这个特定的案例中,我们看到“Asp.net+jQuery带数据(json)三级联动”是一个使用Asp.net后端技术和jQuery前端库,通过JSON数据格式来实现这一功能的项目。以下将详细介绍这个技术组合的关键知识点。 1. Asp.net:...
这个项目“前端jquery+后端servlet实现三级联动项目省市区”就是一个典型的案例,它展示了如何利用jQuery在前端处理用户交互,以及如何通过Servlet在后端进行数据处理和传输。下面我们将详细探讨这个项目中的关键...
本项目"Ajax无刷新三级联动和分页"正是利用了这一特性,实现了在用户选择省市区时的无缝交互以及数据分页显示。 一、Ajax无刷新技术 Ajax的核心是通过XMLHttpRequest对象向服务器发送异步请求,获取数据后,...
在三级联动中,jQuery主要用于监听用户的选择事件,当用户在省级选择框中选择一个省份时,通过Ajax异步请求将该省的市数据发送到服务器,服务器返回数据后,jQuery更新市选择框的选项;同理,当市被选中时,获取并...
**jQuery省市区街道四级联动菜单详解** 在网页开发中,我们常常需要实现一种效果:当用户选择一个省级行政区划时,对应的市、区/县、街道等信息会自动下拉更新,这种交互被称为四级联动菜单。这个“jQuery省市区...
无刷新分级,通常指的是在网页设计中实现的三级联动效果,这种效果允许用户在选择一个级别后,下一级别的选项会自动更新而无需重新加载整个页面。这种技术大大提升了用户体验,因为它减少了页面间的跳转时间,使用户...
本项目".Net+JQuery+SQL 无刷新 省市区 三级联动"就是利用这种技术实现的一种常见功能:在用户选择省份时,城市和区县会自动下拉更新,而这一切都在后台数据库的支持下无缝完成。 首先,.Net框架是微软开发的一种...
在本文中,我们将深入探讨如何使用jQuery和JSON技术来实现无刷新的三级联动效果。这种效果常见于网页上的下拉菜单选择,例如省份、城市、区县的选择,用户在选择上级菜单时,下级菜单会自动更新,无需页面刷新。 ...
无刷新省市县三级联动是一种常见的前端交互设计,它在网页中实现了省份、城市、区县选择功能,用户在选择上一级地区时,下一级地区会自动更新,无需刷新整个页面,提高了用户体验。这一技术主要基于AJAX...
在移动应用和网页开发中,实现用户友好...完成上述步骤后,你将得到一个功能完善的jQuery手机端城市地区选择器,实现省市区三级联动的效果。通过不断优化和调整,可以使其更加符合用户的操作习惯,提升应用的整体体验。