当前位置: 移动技术网 > IT编程>开发语言>.net > 客户端用JavaScript填充DropDownList控件 服务器端读不到值

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

2017年12月12日  | 移动技术网IT编程  | 我要评论
填充没有任何问题,但是在服务器端却取不出来下拉表中的内容。页面代码如下。 复制代码 代码如下: <form id="form1" runat="server">
填充没有任何问题,但是在服务器端却取不出来下拉表中的内容。页面代码如下。
复制代码 代码如下:

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

结束。

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网