日期:2014-05-18  浏览次数:20445 次

随便问个问题,关于ajax联动的
页面上已经有一个DropDownList了,我用脚本在该DropDownList中生成了几个选项。生成方式如下:
var ddl2 = document.getElementById("DropDownList2");
ddl2.options.length = 0;
for(var k=0;k<10;k++)
{
var oOption = document.createElement("OPTION");
ddl2.options.add(oOption);
oOption.innerText = k;
oOption.value = k;
}
这样就在DropDownList中生成了一些选项。
现在我已经选中了一个选项,可是为什么我在后台用this.DropDownList2.SelectedValue确取不到我选择值呢?
谁能给我说说为什么!
还有为什么用脚本将一个TextBox赋值,在后台就能用this.TextBox1.Text取到呢?

顺便祝咱的卫星发射成功!!呵呵。。。

------解决方案--------------------
以前碰到没深究过,选择的时候将value值赋给一个hidden,后台在hidden中取该value值
------解决方案--------------------
Request.Form["DropDownList2"];

------解决方案--------------------
因为控件的视图状态没有改变,所以用selectedValue取不到,可以直接取Post数据
------解决方案--------------------
跟autopsotback属性有关系吗?
佩服楼主,我用的是现成的ajax toolkit做的
看来得想楼主学习
学习DOM和ajax机理了
------解决方案--------------------

------解决方案--------------------
顶,能解决的方法太多,楼上都有讲到,
------解决方案--------------------
因为DropDownList解析到前台就变成了select了,这是html控件,没有runat=server标记
所以改变其的值后台并不能知道,而TextBox本身就是一个服务器端控件,前台改了值后台理所当然
就知道了,所以关键在于是否有runat=server标记
------解决方案--------------------
AJAX 联动? AJAX方法呢? AJAX实现客户端与服务器端的数据交换 在JS控制显示
------解决方案--------------------
以前也遇到过,后来将value值赋给一个hidden才能取到。
------解决方案--------------------
因为dropdownlist是用javascript赋的值
实际html代码option选项是不存在的
要想用C#取值,只能在取值前将selectValue赋给hidden对象
然后从hidden中获取
------解决方案--------------------
还有,
var oOption = document.createElement("OPTION"); 
LZ这样写firefox是不支持的
ddl2.options[k]=new Option(k,k);
------解决方案--------------------
<script language="javascript" type ="text/javascript">
var xmlHttp;

function createXMLHttpRequest()
{
if(window.ActiveXObject)
{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
else if(window.XMLHttpRequest)
{
xmlHttp=new XMLHttpRequest();
}
}

function updateTotal()
{
createXMLHttpRequest();
var NetWork_ID=document.frmCall_Customer.ddl_NetWork.options[document.frmCall_Customer.ddl_NetWork.selectedIndex].text;
document.getElementById("hid_Institution").value=NetWork_ID;
var frm=document.forms[0];
var type_code=0;
var url="CallBack.aspx? id="+NetWork_ID;
xmlHttp.open("GET",url,true);
xmlHttp.onreadystatechange=doUpdate;
xmlHttp.send();
return false;
}

function doUpdate()
{
if(xmlHttp.readyState==4)
{
var result=xmlHttp.responseText;