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的值大家帮帮我啊,我已经郁闷了一天了,都还没弄出来呢
{
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的值大家帮帮我啊,我已经郁闷了一天了,都还没弄出来呢
但是不行啊报错:未将对象引用设置到对象的实例。
然后根据A的值返回下拉框B的内容,再用js改变B的内容.具体的可以看 asp.net的回调
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')";
我是通过添加一个隐藏的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";
}我是这样取的。还是为空啊 能不能写点具体的代码?
我也是这么做的
不过我放的是HIDDEN
{
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的值的
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>
下一个,,,一定可以用,最好是用ajax
全国各省市联动下拉列表(异步动态加载)
现在的代码,非AJAX组件实现,手写脚本