省市联动取值问题,帮帮忙哦,已经被困一天了

FenHui 2007-12-27 05:29:03
function cityResult()
{
var city=document.getElementById("ctl00_ContentPlaceHolder1_DropDownList1");
AjaxMethod.GetCityList(city.value,get_city_Result_CallBack);
}
//回发处理---------------------------
function get_city_Result_CallBack(response)
{
if (response.value != null)
{
//debugger---------------------------
document.all("ctl00_ContentPlaceHolder1_DropDownList2").length=0;    
var ds = response.value;
if(ds != null && typeof(ds) == "object" && ds.Tables != null)
{
for(var i=0; i<ds.Tables[0].Rows.length; i++)
{
var name=ds.Tables[0].Rows[i].PlaceName;
var id=ds.Tables[0].Rows[i].PlaceID;
document.all("ctl00_ContentPlaceHolder1_DropDownList2").options.add(new Option(name,id));
}
}
}
return
}

这个是省市联动的js函数
DropDownList1的值可以this.DropDownList1.SelectedValue这样取得
但是我不知道.cs中怎么取DropDownList2的值

大家帮帮我啊,我已经郁闷了一天了,都还没弄出来呢
...全文
158 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
LikeCode 2007-12-28
  • 打赏
  • 举报
回复
http://www.code-studio.net/CSView.aspx?aid=161
全国各省市联动下拉列表(异步动态加载)
现在的代码,非AJAX组件实现,手写脚本
lihongdian 2007-12-28
  • 打赏
  • 举报
回复
去51aspx.com
下一个,,,一定可以用,最好是用ajax
wuxiaoqqqq 2007-12-28
  • 打赏
  • 举报
回复
前天我也遇到这个问题,觉得要在JS里面传值写得比较麻烦,没有去解决了。
今天看到楼上的方法应该是可行的,下次去试试。
hellvulture 2007-12-28
  • 打赏
  • 举报
回复
cs上处理
txtCityID.Attributes.Add("Style","Display:none")
txtCityID.Attributes.Add ( "onchange" , "gCityID()" );
js处理
<script type="text/javascript" defer="defer">
<!--
function gCityID(){var ddla = document.getElementById("<%=DropDownList2.ClientID %>");document.getElementById("<%=txtCityID.ClientID %>").value = ddla.options[ddla.selectedIndex].value;}
//-->
</script>
Animatrix 2007-12-28
  • 打赏
  • 举报
回复
protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList drop2 = this.DetailsView1.FindControl("DropDownList2") as DropDownList;
HiddenField HFName1 = this.DetailsView1.FindControl("HiddenField5") as HiddenField;
HFName1.Value = drop9.Text;
HFName1.Value = "5";
}

我是这样取的。还是为空啊

能不能写点具体的代码?

=====================================================================

这个值你应该在JS部分取得
你在C#部分还是取不到第2个DROPDOWNLIST的值的
Animatrix 2007-12-28
  • 打赏
  • 举报
回复
我是通过添加一个隐藏的textbox,在用户点击城市列表框的时候执行js脚本,将用户获得的值赋给textbox,然后在确认的时候直接获得textbox的值

========================================================================
我也是这么做的
不过我放的是HIDDEN
FenHui 2007-12-28
  • 打赏
  • 举报
回复
TO:hellvulture

我是通过添加一个隐藏的textbox,在用户点击城市列表框的时候执行js脚本,将用户获得的值赋给textbox,然后在确认的时候直接获得textbox的值
====================================================================================


protected void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList drop2 = this.DetailsView1.FindControl("DropDownList2") as DropDownList;
HiddenField HFName1 = this.DetailsView1.FindControl("HiddenField5") as HiddenField;
HFName1.Value = drop9.Text;
HFName1.Value = "5";
}

我是这样取的。还是为空啊

能不能写点具体的代码?

大正他爹 2007-12-27
  • 打赏
  • 举报
回复
Request.Form[""].Tostring();
hellvulture 2007-12-27
  • 打赏
  • 举报
回复
我是通过添加一个隐藏的textbox,在用户点击城市列表框的时候执行js脚本,将用户获得的值赋给textbox,然后在确认的时候直接获得textbox的值
yjinzaghi 2007-12-27
  • 打赏
  • 举报
回复
<script language="javascript">
function load(placename,drp,Name,CityName,CityID)
{
var drpCity = document.getElementById(drp);
for (i = drpCity.length; i >= 0; i--)
{
drpCity.options.remove(i);
}

var oHttpReq = new ActiveXObject("MSXML2.XMLHTTP");
var oDoc = new ActiveXObject("MSXML2.DOMDocument");
oHttpReq.open("post", "Default3Ajax.aspx?"+Name+"="+placename,false);
oHttpReq.send("");
result = oHttpReq.responseText;

oDoc.loadXML(result);
items1 = oDoc.selectNodes("//NewDataSet/Table/"+CityName);

items2 = oDoc.selectNodes("//NewDataSet/Table/"+CityID);

var itemsLength=items1.length;
var firstop = document.createElement("OPTION");
firstop.text="--請選擇--";
firstop.value="";
drpCity.options.add(firstop);

for(i=0;i<itemsLength;i++)
{
var newOption = document.createElement("OPTION");
newOption.text=items1[i].text;

newOption.value=items2[i].text;
drpCity.options.add(newOption);
}
}
</script>


<body>
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="DropDownList1" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="drpCity" runat="server">
</asp:DropDownList>
<asp:DropDownList ID="DropDownList3" runat="server">
</asp:DropDownList></div>
</form>
</body>
</html>


aspx.cs界面:
DropDownList1.Attributes["onchange"] = "javascript:load(this.options[this.selectedIndex].value,'drpCity','City','CityName','CityID')";
this.drpCity.Attributes["onchange"] = "javascript:load(this.options[this.selectedIndex].value,'DropDownList3','Section','aySectionName','aySectionID')";
浪漫幕末 2007-12-27
  • 打赏
  • 举报
回复
使用 asp.net2.0的回调功能,触发条件是第一个下拉框A的index的改变.
然后根据A的值返回下拉框B的内容,再用js改变B的内容.

具体的可以看 asp.net的回调
FenHui 2007-12-27
  • 打赏
  • 举报
回复
To: ipqxiang

没报错!就是取的值是空的
zhuanshen712 2007-12-27
  • 打赏
  • 举报
回复
如果不用js我就会。
FenHui 2007-12-27
  • 打赏
  • 举报
回复
我只要在后台取到DropDownList2的值就可以啊!!
he_yang 2007-12-27
  • 打赏
  • 举报
回复
UP 观众中。。
ipqxiang 2007-12-27
  • 打赏
  • 举报
回复
报什么错,还有后台怎么写的?
FenHui 2007-12-27
  • 打赏
  • 举报
回复
谢谢 wenddy112
但是不行啊

报错:未将对象引用设置到对象的实例。
wenddy112 2007-12-27
  • 打赏
  • 举报
回复
直接用Request["name"]来获取
FenHui 2007-12-27
  • 打赏
  • 举报
回复
自己顶下

期待帮助

62,046

社区成员

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

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

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

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