日期:2014-05-19  浏览次数:20382 次

Ajax中实现DropDownList联动但是取不到DropDownList2联动以后的值
操作过程:通过DropDownList1的onchange   将DropDownList1的值传递给XmlPost(obj)函数,   该函数通过XHR从.cs文件中获取要赋给DropDownList2的值,该值是通过DDlInfoBind(string   TID)
获得的,然后在函数XmlPost(obj)中将该值赋给DropDownList2

问题来了:   我已经把值赋给DropDownList2了,但是为什么我有Button_Click事件的时候获得DropDownList2的值是在没有联动以前的值,比如,联动以前的值为空( " "),点击Button后返回的值也是空而不是联动以后赋给DropDownList2的选定的值~~~
哪位大虾帮帮忙,小弟在这里谢谢啦~~~~
代码如下~~~~
Script代码:
<SCRIPT   LANGUAGE= "JavaScript ">
        <!--
        //以XML求取数据
        function   XmlPost(obj)
        {
           var   svalue   =   obj.value;
           //alert(svalue);
           if(svalue== "请选择 ")
           {
             document.all( "ddlInfo ").length=0;
           }
           else
           {
             var   webFileUrl   =   "WebForm4.aspx?TypeID= "   +   svalue;
             var   result   =   " ";
             var   xmlHttp   =   new   ActiveXObject( "MSXML2.XMLHTTP ");
             xmlHttp.open( "POST ",   webFileUrl,   false);//使用XMLPOST方式
             xmlHttp.send( " ");//发送
             result   =   xmlHttp.responseText;//得到返回的结果
            
             if(result   !=   " ")
             {
               document.all( "ddlInfo ").length=0;//清空原来存在的
               var   piArray   =   result.split( ", ");
               for(var   i=0;i <piArray.length;i++)
               {
                 var   ary1   =   piArray[i].toString().split( "| ");
                 document.all( "ddlInfo ").options.add(new   Option(ary1[0].toString(),ary1[1].toString()));
               }
             }
             else
             {
               alert(result);
             }
           }
        }
.cs代码如下:
private   void   DDlInfoBind(string   TID)
{
SqlConnection   con   =   db.ReturnConn2();
   string   Mystr   =   " ";
string   bigName=TID;
// SqlDataReader   dr=CDG.GetTypeInfo(TypeID);//此处用了数据访问层的代码,如要运行,必须自己写方法
//   DataTable   MyTab   =Tools.ConvertDataReaderToDataTable(dr);

string   aa= "select   *   from   info_fenlei   where   bigName= ' "+bigName+ " ' ";
SqlDataAdapter   da   =   new   SqlDataAdapter(aa,con);
DataSet   ds   =   new   DataSet();
da.Fill(ds);