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的值大家帮帮我啊,我已经郁闷了一天了,都还没弄出来呢

解决方案 »

  1.   

    谢谢 wenddy112  
    但是不行啊报错:未将对象引用设置到对象的实例。 
      

  2.   

    我只要在后台取到DropDownList2的值就可以啊!!
      

  3.   

    To:  ipqxiang没报错!就是取的值是空的
      

  4.   

    使用 asp.net2.0的回调功能,触发条件是第一个下拉框A的index的改变.
    然后根据A的值返回下拉框B的内容,再用js改变B的内容.具体的可以看 asp.net的回调
      

  5.   

    <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')";
      

  6.   

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

  7.   

    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";
    }我是这样取的。还是为空啊 能不能写点具体的代码?
      

  8.   

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

  9.   

    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的值的
      

  10.   

    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>
      

  11.   

    去51aspx.com
    下一个,,,一定可以用,最好是用ajax
      

  12.   

    http://www.code-studio.net/CSView.aspx?aid=161
    全国各省市联动下拉列表(异步动态加载)
    现在的代码,非AJAX组件实现,手写脚本