三级联动效果

转载 2006年06月06日 20:44:00

大家共同进步,共同学习,现把代码贴下,希望能够起到抛砖引玉的效果。


<script language="javascript">
function getcity(objcity,objprov,objplace,defcity,defprov,defplace)
{
while(objcity.options != null && objcity.options.length>0)
{
objcity.options.remove(0);
}
var oOptionFirst= document.createElement("OPTION");
objcity.options.add(oOptionFirst);
oOptionFirst.value = '';
oOptionFirst.innerText = '请选择';
if(defcity == '')
{
oOptionFirst.selected=true;
}
for(i=0;i<city.length;i++)
{
var oOption= document.createElement("OPTION");
objcity.options.add(oOption);
oOption.value = city[i];
oOption.innerText = city[i];
if(city[i] == defcity)
{
oOption.selected = true;
}
}
chgprov(objcity,objprov,objplace,defprov,defplace);
}

function chgprov(objcity,objprov,objplace,defprov,defplace)
{
idx=objcity.selectedIndex-1;
while(objprov.options != null && objprov.options.length>0)
{
objprov.options.remove(0);
}
var oOptionFirst= document.createElement("OPTION");
objprov.options.add(oOptionFirst);
oOptionFirst.value = '';
oOptionFirst.innerText = '请选择';
if(defprov == '')
{
oOptionFirst.selected=true;
}
if(idx >= 0)
{
for(i=0;i<eval('prov'+idx).length;i++)
{
var oOption= document.createElement("OPTION");
objprov.options.add(oOption);
oOption.value = eval('prov'+idx+'[i]');
oOption.innerText = eval('prov'+idx+'[i]');
if(eval('prov'+idx+'[i]') == defprov)
{
oOption.selected = true;
}
}
}
chgplace(objcity,objprov,objplace,defplace);
}


function chgplace(objcity,objprov,objplace,defplace)
{
pidx = objcity.selectedIndex-1;
idx=objprov.selectedIndex-1;
while(objplace.options != null && objplace.options.length>0)
{
objplace.options.remove(0);
}
var oOptionFirst= document.createElement("OPTION");
objplace.options.add(oOptionFirst);
oOptionFirst.value = '';
oOptionFirst.innerText = '请选择';
if(defplace == '')
{
oOptionFirst.selected=true;
}
if(idx >= 0)
{
for(i=0;i<eval('place'+pidx+'_'+idx).length;i++)
{
var oOption= document.createElement("OPTION");
objplace.options.add(oOption);
oOption.value = eval('place'+pidx+'_'+idx+'[i]');
oOption.innerText = eval('place'+pidx+'_'+idx+'[i]');
if(eval('place'+pidx+'_'+idx+'[i]') == defplace)
{
oOption.selected = true;
}
}
}
}
</script>
<form id="form1" method="post" runat="server">
<table>
<tr>
<td width="90" height="24"

align="right"><font color="666666">位置:</font></td>
<td width="90" align="left">
<select name="city" class="p3"

size="1" onChange="chgprov(this,form1.province,form1.place,'','')">
</select></td>
<td width="90" align="left">
<select name="province" class="p3"

size="1" onChange="chgplace(form1.city,this,form1.place,'')">
</select></td>
<td width="119"><select name="place"

class="p3">
</select>
<script>
                            getcity(form1.city,form1.province,form1.place,'','','')
</script>
</td>
</tr>
</table>
</form>


这是后台页面,在page_load 中调用输出就可以 Response.write(getJSContent());
public string getJSContent()
{
SqlConnection conn = new SqlConnection(strconn);
conn.Open();

string strCity = " var city = new Array(" ;
string strProv = "" ;
string strPlace = "" ;
DataTable dt = new DataTable();
string strsql = "select * from xbzy" ;
SqlDataAdapter da = new SqlDataAdapter(strsql,conn);
DataSet ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];
for(int i = 0 ;i<dt.Rows.Count ;i++)
{
strCity += "'" + dt.Rows[i][1].ToString().Trim() + "'," ;
string sqli = "select * from xbzy where id = " + dt.Rows[i]

[0].ToString().Trim() ;
SqlDataAdapter dai = new SqlDataAdapter(sqli,conn);
DataSet dsi = new DataSet();
dai.Fill(dsi);
DataTable dti = dsi.Tables[0];
strProv += " var prov" + i + " = new Array(" ;
for(int j = 0 ;j<dti.Rows.Count ; j++)
{
strProv += "'" + dti.Rows[j][1].ToString().Trim() +

"'," ;
string sqlj = "select * from xbzy where id = " +

dti.Rows[j][0].ToString().Trim() ;
SqlDataAdapter daj = new SqlDataAdapter(sqlj,conn);
DataSet dsj = new DataSet();
daj.Fill(dsj);
DataTable dtj = dsj.Tables[0];
strPlace += " var place" + i + "_" + j + " = new

Array(" ;
for(int m = 0 ;m<dtj.Rows.Count ; m++)
{
strPlace += "'" + dtj.Rows[m][1].ToString

().Trim() + "'," ;
}
if(strPlace.EndsWith(","))
{
strPlace = strPlace.Substring

(0,strPlace.Length-1);
}
strPlace += ");/n/r" ;
}
if(strProv.EndsWith(","))
{
strProv = strProv.Substring(0,strProv.Length-1);
}
strProv += ");/n/r" ;
}
if(strCity.EndsWith(","))
{
strCity = strCity.Substring(0,strCity.Length-1);
}
strCity += ");/n/r" ;
conn.Close();
return "<script language='javascript'>/n/r" + strCity + strProv +

strPlace + "</script>" ;
}


有的还不是很完美,还请高手指点!!!

Android开发之解析XML并实现三级联动效果

本实例主要应用XmlPullParser解析XML文档中的省市区,然后将数据绑定到Spinner上实现三级联动的效果。关于XmlPullParser的详解大家可以参考《Android开发之使用PULL...

SAP选择屏幕中实现三级联动下拉框效果

REPORT TEST. TYPE-POOLS:vrm. DATA: name TYPE vrm_id. DATA:num TYPE i. "根据PRODH字段长度判断 某行属于哪一级 DATA:l...

Android 高仿 iOS 的省、市、区三级联动效果库(含数据,可直接用到项目中)

Android-PickerView-Library 这是一个高仿 IOS PickerView 控件的库:https://github.com/Airsaid/Android-PickerVi...
  • Airsaid
  • Airsaid
  • 2016年02月03日 14:33
  • 7459

安卓Spinner的三级联动菜单效果

今天练习了一个spinner三级联动的效果,下面是代码详情,希望能对其他人有帮助: MainActivity.java public class MyActivity extends Activi...

使用三层实现省市县三级联动(利用ajax实现无刷新效果)

首页:   http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> http://www.w3.org/1999/xhtml"> ...
  • lxfzgg
  • lxfzgg
  • 2013年05月22日 16:37
  • 898

Android实现省市区三级联动效果Spinner

本文是Android学习过程中关于Spinner使用的实验报告,主要目的是实现省市县的三级联动...
  • YU_IT
  • YU_IT
  • 2017年11月26日 13:35
  • 162

三级联动效果

  • 2014年05月23日 17:31
  • 27KB
  • 下载

Android实现省市区三级联动效果

最近在做项目时有一个选择省市区的三级联动效果。百度上搜了好久也没找到一个合适的控件。后来再github上找到一个不错的三级联动控件,拿来用发现效果还挺好。把自己写的一个demo分享一下。 控件名称为...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:三级联动效果
举报原因:
原因补充:

(最多只允许输入30个字)