我用了javascript实现的级联下拉框,服务器端怎么样都得不到第二个级联下拉的值,得到的是空值。求助啊!

alex5006 2005-07-30 12:45:26
我用了javascript实现的级联下拉框,在两个下来选择完毕后,由button的click事件去取得两个值,但现在只能取得第一个下拉的value,第二个级联的下拉的value怎么也取不到,好象在触发click事件以后,第二个下拉的状态回到了还没有选择第一个下拉时的状态。大虾们,请教啊!
html代码:
<script language="JavaScript">
City = new Array;
City[0] = new Array("请选择","东城区","西城区","崇文区");
City[1] = new Array("请选择","黄浦区","卢湾区","徐汇区");
function fillZero(strValue){ return((strValue.length>2)?"0"+strValue:strValue);}
function setCity(tarProvince,tarCityObj){
var tarCityArr = City[parseInt(tarProvince)];
var tarObjName = document.getElementById(tarCityObj);
clear(tarCityObj);
for(i=0; i<tarCityArr.length; i++){
oOption = document.createElement("OPTION");
oOption.text = tarCityArr[i];
oOption.value = fillZero(i.toString());
if ( document.all ){tarObjName.add(oOption);}
else{ tarObjName.appendChild(oOption);}
oOption = null;
}
}
function clear(tarCityObj){
var tarObjName = document.getElementById(tarCityObj);
while(tarObjName.length>0){
tarObjName.options[0] = null;
}
}
</script>
<select id="province" onchange="setCity(this.value,'city')" name="province"runat="server">
<option value="" selected>请选择</option>
<option value="00">北京</option>
<option value="01">上海</option>
</select>
<select id="city" name="city" runat="server"></select>县市

cs代码:
private void search3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
lbl1.Text = province.Value;
lbl2.Text = city.Value;
}

lbl2就是得不到值,好象click后,页面重载过一样了,第二个级联就没有值了。有办法实现吗?急啊!
...全文
310 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ghchen 2005-09-19
  • 打赏
  • 举报
回复
request.form[controlID]
wenhao676 2005-07-30
  • 打赏
  • 举报
回复
if(!IsPostBack){

}
zeusvenus 2005-07-30
  • 打赏
  • 举报
回复
我觉得可能是返回页面的问题,事实上你第二个值已经取到了,但是页面返回后又丢失了,所以应该把你数据绑定的代码部分放到
if(!(Page.IsPostBack))
{
}
中。楼主试试。
sugarsupper 2005-07-30
  • 打赏
  • 举报
回复
如果不是先放在vs中绑定的控件,或是动态加载的,用request.form[controlID]取直
cityhunter172 2005-07-30
  • 打赏
  • 举报
回复
我曾用 XML 做级联

解决的方法是

用两个隐藏控件<input type=hidden runat=server id=Hn_ID> 保存选定的值

如果你只想获取 .value 的话,可在 .cs 代码这样写

lbl2.Text = Request["city"];
alex5006 2005-07-30
  • 打赏
  • 举报
回复
cuike519(marshal(Help you,Help me)) ,级联的绑定是在客户端实现的,Page_Load里没代码的啊。
cuike519 2005-07-30
  • 打赏
  • 举报
回复
button的click事件之前执行了Page_Load方法。
需要在Page_Load方法里面使用
if(!IsPostBack){
//databind here
}
即可!

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧