.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
    评论
Vue三级联动下拉菜单是指一个三级级联的下拉菜单实现,其中每个层级的选项列表将随着前面选择的选项而动态更新。 实现Vue三级联动下拉菜单的步骤如下: 1. 定义绑定数据:首先需要定义三个数据对象,即第一级选项列表、第二级选项列表和第三级选项列表,以及他们的初始值。这些数据对象将通过Vue的数据绑定机制与前端界面绑定。 2. 实现选项列表的动态更新:当用户选择一级选项时,需要根据该选项对应的规则获取二级选项列表。同样的,当用户选择二级选项时,需要根据该选项对应的规则获取三级选项列表。这一步需要结合Vue的computed属性和watch机制实现。 3. 绑定前端交互事件:通过v-on指令将用户选择事件与Vue的方法绑定。当用户选择一级选项时将触发与该数据对象绑定的方法,在该方法中更新二级选项列表并清空三级选项列表。当用户选择二级选项时,将触发与该数据对象绑定的方法,在该方法中更新三级选项列表。 4. 前端界面的渲染:根据Vue的数据绑定机制,当数据对象改变时,前端界面上的内容也要相应地改变。因此,需要使用v-for指令结合绑定的数据对象遍历选项列表,并使用v-model指令将用户选择的选项与对应数据对象绑定。 总之,Vue三级联动下拉菜单是一种方便实用的前端交互方式,能够让用户在选择选项时更加快速和准确。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值