none
dropdownlist用JS联动后,后台如何取到第二个dropdownlist的选中值? RRS feed

  • 问题

  •  <script language="javascript" type="text/javascript">
      $(function() {
       var $DdlArea = $("#ctl00_ctl00_C1_C2_DdlArea");
       var $DdlBusiness = $("#ctl00_ctl00_C1_C2_DdlBuildings");
       $DdlArea.focus();
       $DdlArea.bind("change keyup", function() {
        if ($(this).val() != "0") {
         loadBusinessID($("select option:selected").val());
         $DdlBusiness.fadeIn("slow");
        } else {
         loadBusinessID($("select option:selected").val());
        }
       });
      })
      function loadBusinessID(selectedItem) {
       $.ajax({
        type: "POST",
        url: "Default.aspx/FetchBusiness",
        data: "{AreaID: " + selectedItem + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        async: true,
        success: function Success(data) {
         printBusiness(data.d);
        }
       });
      }
      function printBusiness(data) {
       $("#ctl00_ctl00_C1_C2_DdlBuildings > option").remove();
       for (var i = 0; i < data.length; i++) {
        $("#ctl00_ctl00_C1_C2_DdlBuildings").append(
         $("<option></option>").val(data[i].ID).html(data[i].Buildings)
        );
       }
      } 
     </script>
    
      <div style="text-align: center; width: 785px">
       <asp:DropDownList ID="DdlArea" runat="server" DataSourceID="SqlDataSource1" DataTextField="AreaName"
        DataValueField="AreaID" AppendDataBoundItems="true">
        <asp:ListItem Text="--请选择--" Value="0"></asp:ListItem>
       </asp:DropDownList>
       <asp:DropDownList ID="DdlBuildings" runat="server" AppendDataBoundItems="true">
        <asp:ListItem Text="--请选择--" Value="0"></asp:ListItem>
       </asp:DropDownList>
       &nbsp;<asp:Button ID="Button11" runat="server" Text="定位" Width="40px" BackColor="#F54714"
        BorderWidth="1px" Font-Bold="True" ForeColor="White" OnClick="Button11_Click" />
      </div>
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.MobileControls;
    
    public partial class delivery_Default : System.Web.UI.Page
    {
     protected void Page_Load(object sender, EventArgs e)
     {
    
     }
    
    
     [System.Web.Services.WebMethod]
     public static List<Model.BuildingList> FetchBusiness(int AreaID)
     {
      List<Model.BuildingList> Buildings = new List<Model.BuildingList>();
      Buildings = BLL.OrderingBLL.GetBuildingList(AreaID);
      return Buildings;
     }
    
     protected void Button11_Click(object sender, EventArgs e)
     {
      int AreaID = Convert.ToInt32(DdlArea.SelectedValue);
      int Building = Convert.ToInt32(DdlBuildings.SelectedValue);
     }
    }
    
    我如何取到第二个dropdownlist的选中项的值?
    
    2011年2月11日 3:05

答案

  • 注意:

    控件的name不是 客户端id

    下面是一个例子

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     protected void Page_Load(object sender, EventArgs e)
     {
      GridView1.DataSource = new String[] { };
      GridView1.DataBind();
     }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title></title>
    </head>
    <body>
     <form runat="server" id="form1">
     <asp:GridView ID="GridView1" runat="server">
      <EmptyDataTemplate>
       <asp:DropDownList ID="DropDownList1" runat="server">
       </asp:DropDownList>
      </EmptyDataTemplate>
     </asp:GridView>
     </form>
    </body>
    </html>
    
    

    生成的代码

    <select name="GridView1$ctl01$DropDownList1" id="GridView1_DropDownList1">
    
    


    【孟子E章】
    2011年2月16日 0:49
    版主

全部回复

  • 您好,只要是服务器控件,就能在后台取到值。

    如果您说的是DdlBuildings,那么DdlBuildings.SelectedValue就可以。只是稍微要注意一下在Page_load中判断是否是IsPostback,以防止DdlBuildings被重新绑定。

    2011年2月11日 8:16
    版主
  • 获取Httpcontext.Request.Form[""] 查看第二个clientid

     

    或者直接获取droplist  的 selectedvalue就可以

    2011年2月11日 11:42
    版主
  • Request.Form[DdlBuildings.UniqueID]

     

     


    【孟子E章】
    2011年2月15日 0:33
    版主
  • Request.Form[这里必须是name属性,不能是 客户端id]
    【孟子E章】
    2011年2月15日 0:36
    版主
  • 控件的name就是客户端id
    2011年2月15日 11:28
    版主
  • 注意:

    控件的name不是 客户端id

    下面是一个例子

    <%@ Page Language="C#" %>
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <script runat="server">
    
     protected void Page_Load(object sender, EventArgs e)
     {
      GridView1.DataSource = new String[] { };
      GridView1.DataBind();
     }
    </script>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
     <title></title>
    </head>
    <body>
     <form runat="server" id="form1">
     <asp:GridView ID="GridView1" runat="server">
      <EmptyDataTemplate>
       <asp:DropDownList ID="DropDownList1" runat="server">
       </asp:DropDownList>
      </EmptyDataTemplate>
     </asp:GridView>
     </form>
    </body>
    </html>
    
    

    生成的代码

    <select name="GridView1$ctl01$DropDownList1" id="GridView1_DropDownList1">
    
    


    【孟子E章】
    2011年2月16日 0:49
    版主