文档章节

客户端用javascript填充Dropdownlist,服务器端获取不到Dropdownlist的值

 我是骗子
发布于 2016/05/19 23:24
字数 371
阅读 3
收藏 0

今天遇到一个奇怪的问题,某一页面需要使用三级级联下拉列表框。为提高用户体验,采用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> 

本文转载自:http://www.cnblogs.com/iSuwei/p/3627757.html

共有 人打赏支持
粉丝 0
博文 4
码字总数 0
作品 0
武汉
程序员
解决dropdownlist覆盖div问题

问题的出现 当你使用一个div在一些控件所在位置之上显示一些帮助信息时,你也许会遇到控件覆盖div帮助信息的问题。造成这个问题的原因是页面上的控件没有设置z-index属性,z-index属性决定元...

m2land
2008/11/18
0
0
接收DropDownList数据,控制文本控件的显示或隐藏 .net

今天,我们来试一下怎么用DropDownList接收的数据来控制文本部件的显隐。 首先,我们需要在DropDownList中开启OnSelectedIndexChanged事件,将AutoPostBack设置为True。 然后,在我们的Table...

小_橙_子
09/18
0
0
asp.net mvc 将Enum绑定在DropDownList了

假设我们有一个enum: public enum Role{ User = 0, Admin = 1024 } 我们想要实现如此效果: 因为enum本身并没有IEnumerable接口,所以不能直接使用new SelectList(Role);来将之填充DropDownL...

随智阔
2013/06/07
0
0
asp.net 后台cs代码怎么操作前台用ajax实现下拉框进行搜索

html页面的两个下拉类别框是联动的,第一个下拉框是后台绑定的,第二个下拉框是用ajax来无刷新动态绑定的,在做查询页面时,选择第一个下拉框之后,第二个下拉框也发生变化,点击搜索之后,第...

阿拉赛
2012/11/06
0
0
【转】asp.net不用CrystalReportViewer 直接打印

给页面放一个DropdownList,在PageLoad事件里添加以下代码: For Each iprt As String In System.Drawing.Printing.PrinterSettings.InstalledPrinters DropDownList1.Items.Add(iprt) Next ......

木木情深
2012/10/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

nginx的简单使用:负载均衡

nginx:反向代理的服务器;用户发送请求到nginx,nginx把请求发送给真正的服务器,等待服务器处理完数据并返回,再把数据发送给用户。 nginx作为一个反向代理服务器,能缓存我们项目的静态文...

osliang
15分钟前
1
0
网站title标题被改并被百度网址安全中心提醒的解决办法

国庆假日期间我们Sine安全接到众多网站站长求助网站标题被改导致在百度搜索中百度安全中心提醒被拦截,导致网站正常用户无法浏览网站被跳转到一些菠菜du博网站,而且很明显的一个特征就是在百...

网站安全
17分钟前
1
0
JDK版本与major.minor version的对照关系

其实,只需要记住jdk6对于major.minor version 50即可,其他版本自行计算即可。 ---------------------

码代码的小司机
19分钟前
1
0
Gitlab安装

具体步骤如下: sudo yum install -y curl policycoreutils-python openssh-server cronie sudo lokkit -s http -s ssh sudo yum install postfix sudo service postfix start sudo chkconfi......

很好亦平凡ms
27分钟前
1
0
C++基础教程面向对象学习笔记及心得感悟[图]

C++基础教程面向对象学习笔记及心得感悟[图] 使用友元函数重载算术运算符: C ++中一些最常用的运算符是算术运算符 - 即加号运算符(+),减运算符( - ),乘法运算符(*)和除法运算符(/...

原创小博客
28分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部