客户端用JavaScript填充DropDownList控件 服务器端读不到值

Posted 山涧清泉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了客户端用JavaScript填充DropDownList控件 服务器端读不到值相关的知识,希望对你有一定的参考价值。

填充没有任何问题,但是在服务器端却取不出来下拉表中的内容。页面代码如下。

<form id="form1" runat="server"> 
<div> 
<h3>看看用js填充的dropdownlist控件在服务器端能读出来吗?</h3> 
三个级联下拉列表框: 
<asp:DropDownList runat="server" id="bigTypeList" Width="150"> 
</asp:DropDownList> 
<asp:DropDownList runat="server" id="typeList" Width="150"> 
</asp:DropDownList> 
<asp:DropDownList runat="server" id="smalltypeList" Width="150"> 
</asp:DropDownList> 
<br /> 
<asp:Button runat="server" Text="读取下拉表" ID="OK" onclick="OK_Click" /><br /> 
你选的是:<asp:Label runat="server" Text="Label" ID="label1"></asp:Label> 
</div> 
</form> 

用来测试的后台代码如下。 

protected void OK_Click(object sender, EventArgs e) 

ListItem[] array = new ListItem[3]; 
array[0] = bigTypeList.SelectedItem; //为null 
array[1] = typeList.SelectedItem; //为null 
array[2] = smalltypeList.SelectedItem; //为null 

事实证明,在服务器端读取客户端填充的DropDownList控件的值时,根本读不到任何内容。DropDownList.Items.Count为0,DropDownList.SelectedItem为null。 
那么,怎么得到这个值呢,只好使用Request.Form["控件的客户端ID"]了。如下代码所示。 

string s=Request.Form[typeList.ClientID]; 

附:页面中的javascript文件。 

<script language="javascript" type="text/javascript"> 
$(function () { 
var bigId = ‘#<%=bigTypeList.ClientID%>‘; 
var mediumId = ‘#<%=typeList.ClientID%>‘; 
var smallId = ‘#<%=smalltypeList.ClientID%>‘; 
$(bigId).cascadingDropDown(mediumId, 
‘../Services/AutoTypeService.asmx/getAutoType‘, 
{ valueMember: ‘id‘, displayMember: ‘name‘, cascadingArgName: ‘parent‘ }); 
$(mediumId).cascadingDropDown(smallId, 
‘../Services/AutoTypeService.asmx/getSubAutoType‘, 
{ valueMember: ‘id‘, displayMember: ‘name‘, cascadingArgName: ‘parent‘ }); 
}); 
</script> 


































以上是关于客户端用JavaScript填充DropDownList控件 服务器端读不到值的主要内容,如果未能解决你的问题,请参考以下文章

用javascript填充textarea,添加换行符[重复]

用 javascript 填充输入搜索字段(字段动态显示结果)

用 JavaScript 中的 JSON 数据动态填充表格的快速方法

使用 javascript 和 jquery,用数组结构填充相关的选择框

如何使用 Javascript 和 PHP 用 mysql 查询的输出填充列表

Javascript/PHP/Jquery - 自动填充和数据加密