文档章节

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

 我是骗子
发布于 2016/05/19 23:24
字数 371
阅读 5
收藏 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问题,帮帮忙,大虾

@北落 你好,想跟你请教个问题:有个表格,第一个tr有DropDownList,是为了修改下面全部DropDownList的,下面的tr也有DropDownList,最左边是checkbox ,现在想选中最左边的几项checkbox,修...

钟颖
2012/11/20
88
2
DropDownList问题,进来看!

有个表格,第一个tr有DropDownList,是为了修改下面全部DropDownList的,下面的tr也有DropDownList,最左边是checkbox ,现在想选中最左边的几项checkbox,修改第一个tr的DropDownList,相应下...

钟颖
2012/11/19
105
2
DropDownList同时修改多项。

有个表格,第一个tr有DropDownList,是为了修改下面全部DropDownList的,下面的tr也有DropDownList,最左边是checkbox ,现在想选中最左边的几项checkbox,修改第一个tr的DropDownList,相应下...

钟颖
2012/11/20
201
0
必须用JS 实现二级联动 不能使用Jquery

前台代码: <%@ Page Title="" Language="C#" MasterPageFile="~/site.master" AutoEventWireup="true" CodeFile="User_Select.aspx.cs" Inherits="User_Select" %> Province: City: 省份后台......

王言祥
2012/05/18
658
1
实现无刷新DropDownList联动效果

在做一个文章添加功能时,想在选择大类后,自动将其所属二级小类显示出来,使用DropDownList的SelectedIndexChanged事件可以很容易实现,但每次选择后页面总要刷新一次,让人感觉很不爽。为实...

晨曦之光
2012/03/09
81
0

没有更多内容

加载失败,请刷新页面

加载更多

mysql 时间格式化

DATE_FORMAT

1713716445
6分钟前
0
0
聊聊flink的PartitionableListState

序 本文主要研究一下flink的PartitionableListState PartitionableListState flink-runtime_2.11-1.7.0-sources.jar!/org/apache/flink/runtime/state/DefaultOperatorStateBackend.java /*......

go4it
11分钟前
0
0
Micropython教程之TPYBoard开发板制作电子时钟(萝卜学科编程教育)

1.实验目的 1. 学习在PC机系统中扩展简单I/O?接口的方法。 2. 什么是SPI接口。 3. 学习TPYBoard I2C接口的用法。 4. 学习LCD5110接线方法。 5. 设定时钟并将当前时间显示在LCD5110上。 2.所需...

bodasisiter
11分钟前
0
0
js 闭包

闭包,是 Javascript 比较重要的一个概念,对于初学者来讲,闭包是一个特别抽象的概念,特别是 ECMAScript 规范给的定义,如果没有实战经验,很难从定义去理解它。因此,本文不会对闭包的概念...

MrBoyce
16分钟前
0
0
Java B2B2C o2o多用户商城 springcloud架-企业云架构common-service代码结构分析

当前的分布式微服务云架构平台使用Maven构建,所以common-service的通用服务按照maven构建独立的系统服务,结构如下: particle-commonservice: spring cloud 系统服务根项目,所有服务项目...

itcloud
22分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部