2009-07-09 22 views
1

我在应用程序中有一个级联的DropDownList。级联下拉列表的内容足够小,以至于不需要使用AJAX/JSON去数据库来获取内容,我只是在客户端JavaScript中这样做(这是一个子集数据):在客户端JavaScript修改后获取DropDownList的值

 

var val = typeList.value; 
var applyTimeList = document.getElementById('clientid'); 
for (var q=applyTimeList.options.length; q>=0; q--) 
    applyTimeList.options[q]=null; 

if (val == 'AutoRoute') 
{ 
    myEle = document.createElement('option') ; 
    myEle.value = 'SOP Processed'; 
    myEle.text = 'SOP Processed'; 
    applyTimeList.add(myEle) ; 
} else if (val == 'Tier1Retention') { 
    myEle = document.createElement('option') ; 
    myEle.value = 'Study Processed'; 
    myEle.text = 'Study Processed'; 
    applyTimeList.add(myEle); 
    myEle = document.createElement('option') ; 
    myEle.value = 'Study Restored'; 
    myEle.text = 'Study Restored'; 
    applyTimeList.add(myEle); 
    myEle = document.createElement('option') ; 
    myEle.value = 'Study Archived'; 
    myEle.text = 'Study Archived'; 
    applyTimeList.add(myEle) ; 
} 
 

当我试图访问的DropDownList在服务器端我不能得到的价值选择,它总是返回0作为索引:

 

int index = RuleApplyTimeDropDownList.SelectedIndex; 
 

我怎样才能得到修改后在服务器端选择的值?

回答

2

可以从DropDownList中检索该值,因为在客户端添加的值不会在ViewState中。要做到这一点,正确的方法是:

 

string selectedVal = Request[RuleApplyTimeDropDownList.UniqueID]. 
 
1

你说你想从客户端的价值,

var applyTimeList = document.getElementById('clientid'); 
var value = applyTimeList.options[applyTimeList.selectedIndex].value; 

,但如果你的意思是服务器端,那么你需要把它挑出来的形式如史蒂夫W显示。

+0

感谢您的反馈意见,我打算试图关注如何在服务器端获取所选值,而不是客户端。我编辑了这篇文章。 – 2009-07-09 21:06:16