.net三级联动不刷新效果

希望大家支持这个帖子,谢谢
本人的msn:happyamei112@hotmail.com
大家共同进步,共同学习,现把代码贴下,希望能够起到抛砖引玉的效果。


<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>" ;
}


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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值