今天遇到一个奇怪的问题,某一页面需要使用三级级联下拉列表框。为提高用户体验,采用jQuery的cascadingDropDown插件调用后台Web Services来实现ajax填充。

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

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

最新文章

  1. Java多线程编程核心技术--定时器
  2. Sharepoint2012 Report权限
  3. asp.net datatable 导出为 txt
  4. java JDK8 学习笔记——第17章 反射与类加载器
  5. jquery操作select 的value和text值
  6. 你如何理解HTML结构的语义化?
  7. php 基本符号
  8. C++函数学习笔记
  9. C语言基础09
  10. Swift中文手册 -- The Basics
  11. image图片拉伸
  12. 关于XAMPP环境配置
  13. peoplesoft function PSTREENODE 通过 deptid 获得部门树 一级部门 名称
  14. ROM型启动方式概述
  15. leetcode 104 Maximum Depth of Binary Tree二叉树求深度
  16. 【原创】大叔问题定位分享(10)提交spark任务偶尔报错 org.apache.spark.SparkException: A master URL must be set in your configuration
  17. Python-MacOSX下SIP引起的pip权限问题解决方案(非取消SIP机制)
  18. 我自己的sublime3环境
  19. 认识ZTree
  20. [转]使用keepalived搭建主备切换环境

热门文章

  1. .net 设置默认首页
  2. Ansible 安装使用过程中遇到过的问题
  3. 数位DP入门题——[hdu2089]不要62
  4. day 71作业
  5. SQL server插入数据后,获取自增长字段的值
  6. PLSQL直接通过客户端连接远程
  7. OPENCV 图像缩放
  8. CentOS 6.5 FTP安装配置
  9. JasperReports报表字段11
  10. NoClassDefFoundError: Could not initialize class org.apache.cxf.jaxrs.provider.ProviderFactory org.springframework.aop.support.AopUtils.isCglibProxyClass