ajax.net+jquery无刷新三级联动的实例代码
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<scriptsrc="Jquery1.7.js"type="text/javascript"></script>
<scripttype="text/javascript">
$(function(){
$.ajax({
type:"post",
contentType:"application/json",
url:"WebService1.asmx/loadprovince",
data:"{}",
success:function(result){
varping;
for(vari=0;i<result.d.length;i++){
ping+="<optionvalue="+result.d[i].provinceID+">";
ping+=result.d[i].provincename;
ping+="</option>";
}
$("#Select1").append(ping);
}
})
$("#Select1").change(function(){
//第二次选时要记得清空市和县中的内容
$("#Select2option:gt(0)").remove();
$("#Select3option:gt(0)").remove();
//在省的改变事件里绑定下一个下来列表(要失掉省的id)
$.ajax({
type:"post",
contentType:"application/json",
url:"WebService1.asmx/loadcity",
data:"{fatherid:""+$("#Select1option:selected").val()+""}",
success:function(result){
varstr2;
for(vari=0;i<result.d.length;i++){
str2+="<optionvalue="+result.d[i].cityID+">";
str2+=result.d[i].cityname;
str2+="</option>";
}
$("#Select2").append(str2);
}
})
})
$("#Select2").change(function(){
$("#Select3option:gt(0)").remove();
$.ajax({
type:"post",
contentType:"application/json",
url:"WebService1.asmx/loadarea",
data:"{fatherid:""+$("#Select2option:selected").val()+""}",
success:function(result){
varstr3;
for(vari=0;i<result.d.length;i++){
str3+="<optionvalue="+result.d.areaID+">";
str3+=result.d[i].areaname;
str3+=result.d[i].father;
}
$("#Select3").append(str3);
}
})
})
})
</script>
</head>
<body>
省:
<selectid="Select1">
<option>--请选择--</option>
</select>
市:
<selectid="Select2">
<option>--请选择--</option>
</select>
县:
<selectid="Select3">
<option>--请选择--</option>
</select>
</body>
</html>
webservice:
[WebMethod]//加载省
publicList<Model.province>loadprovince()//为什么要用list因为这里出从前的值不可能一个实例是多个model实例,一个实例就是一条记载这样做防止字段错误
{
BLL.provincebp=newBLL.province();
List<Model.province>list=bp.getlistModel();
returnlist;
}
[WebMethod]//加载市
publicList<Model.city>loadcity(stringfatherid)
{
BLL.citybc=newBLL.city();
List<Model.city>list=bc.getlistmodel(fatherid);
returnlist;
}
[WebMethod]//加载县
publicList<Model.area>loadarea(stringfatherid)
{
BLL.areaba=newBLL.area();
List<Model.area>list=ba.getlistmodel(fatherid);
returnlist;
}
}
}
DAL--area
publicSystem.Collections.Generic.List<Model.area>getlistmodel(stringfatherid)
{
System.Collections.Generic.List<Model.area>list=newSystem.Collections.Generic.List<Model.area>();
DataTabledt=GetList("father="+fatherid+"").Tables[0];
foreach(DataRowrowindt.Rows)
{
Model.areama=newModel.area();
ma.areaID=row["areaID"].ToString();
ma.areaname=row["areaname"].ToString();
ma.father=row["father"].ToString();
list.Add(ma);
}
returnlist;
}
Dal--city
publicSystem.Collections.Generic.List<Model.area>getlistmodel(stringfatherid)
{
System.Collections.Generic.List<Model.area>list=newSystem.Collections.Generic.List<Model.area>();
DataTabledt=GetList("father="+fatherid+"").Tables[0];
foreach(DataRowrowindt.Rows)
{
Model.areama=newModel.area();
ma.areaID=row["areaID"].ToString();
ma.areaname=row["areaname"].ToString();
ma.father=row["father"].ToString();
list.Add(ma);
}
returnlist;
}
}
DAL-provience
publicSystem.Collections.Generic.List<Model.province>getlistModel()
{
//将要查的内容以实例的方式返回
//这里要做的就是要建立list并将list用model实例填满,而model要用一个方法失掉数据并添加到model中
//建list实例
System.Collections.Generic.List<Model.province>list=newSystem.Collections.Generic.List<Model.province>();
//已经有了的失掉数据的方法就不用自己写了通过调用Getlist的方法操纵数据库拿到数据
DataTabledt=GetList("").Tables[0];
//拿到数据后就需要将数据添加到model实例中了
foreach(DataRowrowindt.Rows)
{
//每一行都是个实例所以要将model的放在循环里面
Model.provincemp=newModel.province();
mp.provinceID=row["provinceID"].ToString();
mp.provincename=row["provincename"].ToString();
list.Add(mp);//没添加完一个实例都要放到list中
}
returnlist;
}相关文章