zoukankan      html  css  js  c++  java
  • 客户端用javascript填充Dropdownlist,服务器端获取不到Dropdownlist的值

    今天遇到一个奇怪的问题,某一页面需要使用三级级联下拉列表框。为提高用户体验,采用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> 
  • 相关阅读:
    QT 中如何实现一个简单的动画
    qt 中画线时如何设置笔的颜色和填充
    QT自定义窗口
    qt 中创建一个工作线程(例子)
    QT 获取系统时间
    火狐浏览器 system error code 1722 rpc服务器不可用和谷歌浏览器的插件application/x-print-ladop不支持
    ORA-10858:在要求输入数字处找到非数字字符
    eaeyui-combobox实现组合查询(即实现多个值得搜索)
    Mybatis中的模糊查询
    如何设置像我这样的博客的样式。
  • 原文地址:https://www.cnblogs.com/iSuwei/p/3627757.html
Copyright © 2011-2022 走看看