zoukankan      html  css  js  c++  java
  • CascadingDropDown控件级联下拉菜单

    功能:
            用来附加到一个ASP.NET DropDownList控件之上,以便自动产生一整组DropDownList控件中的选项,以供用户选择。

    属性:        

    TargetControlID

    指定要扩展的DropDownListID

    Category

    DropDownList表示的类别名称,在WebMethod中会用到

    PromptText

    没有选择时显示的文字

    LoadingText

    加载数据时显示的文字

    ServicePath

    获取数据的Web Service,为每个DropDownList都要指定

    ServiceMethod

    获取数据的Web Method

    ParentControlID

    要扩展的DropDownList的父控件ID

    SelectedValue

    默认的选择项的值


    实例代码:
        aspx页面:
        
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
        
    <title>示范如何使用“级联下拉菜单”(CascadingDropDown)</title>
        
    <link href="style.css" type="text/css" rel="Stylesheet" />
    </head>
    <body onload="focus();">
        
    <div class="banner">
            
    <href="http://abcdwxc.cnblogs.com/" target="_blank">
                级联下拉菜单的使用(CascadingDropDown控件)------王晓成博客
            
    </a>
        
    </div>
        
    <div class="description">
            
    <ul>
                
    <li>从第一个下拉列表框选择某一个<strong>“县市”</strong>之后,用来选择<strong>“乡镇区市”</strong>的下拉列表框就可以进行选取。 </li>
                
    <li>从第二个下拉列表框选择某一个<strong>“乡镇区市”</strong>之后,便可以查看该乡镇区市的邮政编码。 </li>
            
    </ul>
        
    </div>
        
    <form id="form1" runat="server">
            
    <asp:ScriptManager ID="ScriptManager1" runat="server">
            
    </asp:ScriptManager>
            
    <center>
            
    <table border="1" width="480px">
                
    <tr>
                    
    <td style=" 340px; height: 29px; text-align: right;">
                        请选择县市:
    </td>
                    
    <td style=" 140px; height: 29px;">
                        
    <asp:DropDownList ID="ddlCityName" runat="server">
                        
    </asp:DropDownList></td>
                
    </tr>
                
    <tr>
                    
    <td style=" 340px; text-align: right;">
                        请选择乡镇区市:
    </td>
                    
    <td style=" 140px">
                        
    <asp:DropDownList ID="ddlSubAreaName" runat="server" AutoPostBack="True" 
                            onselectedindexchanged
    ="ddlSubAreaName_SelectedIndexChanged">
                        
    </asp:DropDownList></td>
                
    </tr>
                
    <tr>
                    
    <td style=" 340px; text-align: right;">
                        邮政编码:
    </td>
                    
    <td style=" 140px">
                        
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
                            
    <ContentTemplate>
                                
    <asp:TextBox ID="TextBoxZipCode" runat="server"></asp:TextBox>
                            
    </ContentTemplate>
                            
    <Triggers>
                                
    <asp:AsyncPostBackTrigger ControlID="ddlSubAreaName" EventName="SelectedIndexChanged" />
                            
    </Triggers>
                        
    </asp:UpdatePanel>
                    
    </td>
                
    </tr>
            
    </table>
            
    </center>
            
    <br />        
            
    <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server" Category="City"
                LoadingText
    ="读取县市数据中" PromptText="请选择县市名称" ServiceMethod="GetCityNames" ServicePath="ZipCodeWebService.asmx"
                TargetControlID
    ="ddlCityName">
            
    </ajaxToolkit:CascadingDropDown>
            
    <ajaxToolkit:CascadingDropDown ID="CascadingDropDown2" runat="server" Category="SubArea"
                LoadingText
    ="读取乡镇区市数据中" ParentControlID="ddlCityName" PromptText="请选择乡镇区市"
                ServiceMethod
    ="GetSubAreaByCityID" ServicePath="ZipCodeWebService.asmx" TargetControlID="ddlSubAreaName">
            
    </ajaxToolkit:CascadingDropDown>
        
    </form>
    </body>
    </html>

    CS页面: 
       protected void ddlSubAreaName_SelectedIndexChanged(object sender, EventArgs e)
        
    {
            
    //将邮政编码显示在文字方块中。
            this.TextBoxZipCode.Text = this.ddlSubAreaName.SelectedItem.Value;
        }

    编写相应的WebServices:
    using System;
    using System.Linq;
    using System.Web;
    using System.Collections;
    using System.Collections.Generic;
    using System.Web.Services;
    using System.Web.Services.Protocols;
    using System.Xml.Linq;
    using System.Data.SqlClient;
    using System.Web.Script.Services;
    using AjaxControlToolkit;
    using System.Data;
    using System.Web.Configuration;
    using System.Configuration;
    using System.Collections.Specialized;

    /// <summary>
    /// Summary description for ZipCodeWebService
    /// </summary>

    [WebService(Namespace = "http://tempuri.org/")]
    [WebServiceBinding(ConformsTo 
    = WsiProfiles.BasicProfile1_1)]
    // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. 
     [System.Web.Script.Services.ScriptService]

    public class ZipCodeWebService : System.Web.Services.WebService {

        
    public ZipCodeWebService () {

            
    //Uncomment the following line if using designed components 
            
    //InitializeComponent(); 
        }


        [WebMethod]
        
    public CascadingDropDownNameValue[] GetCityNames(string knownCategoryValues, string category)
        
    {
             
    //声明 CascadingDropDownNameValue 数组。        
            List<CascadingDropDownNameValue> values =new List<CascadingDropDownNameValue>();
            
    //Dim values As New Generic.List(Of CascadingDropDownNameValue)

            
    // 取得 web.config 中的数据库联机字符串设定来建立 SQL 联机对象。
            string connectionString = ConfigurationManager.ConnectionStrings["County"].ConnectionString;
            SqlConnection connection 
    = new SqlConnection(connectionString);        
            SqlCommand command 
    = new SqlCommand("SELECT CName, CID FROM County");
            command.Connection 
    = connection;
            
    // 开启数据库连接并将数据读入数据读取器中。
            connection.Open();
            SqlDataReader sdr 
    = command.ExecuteReader();
            
    while (sdr.Read())
            
    {
               
    // 将「县市名称」与「县市代号」新增到数组中。
                values.Add(new CascadingDropDownNameValue(sdr.GetSqlChars(0).Value.ToString(),sdr.GetInt32(1).ToString()));
            }

            
    return values.ToArray();        
        }


        
    public CascadingDropDownNameValue[] GetSubAreaByCityID(string knownCategoryValues, string category)
        
    {
            StringDictionary kv 
    = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
            
    int cityID;

            
    if (!kv.ContainsKey("cityID"|| !Int32.TryParse(kv["cityID"], out cityID))
            
    {
                
    return null;
            }

           
    // 声明 CascadingDropDownNameValue 数组。
            List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
            
    // 取得 web.config 中的数据库联机字符串设定来建立 SQL 联机对象。
            string connectionString = ConfigurationManager.ConnectionStrings["County"].ConnectionString;
            SqlConnection connection 
    = new SqlConnection(connectionString);
            SqlCommand command 
    = new SqlCommand(@"ELECT VName, VCode FROM Village WHERE CountyID =" + cityID);
            
    // 开启数据库连接并将数据读入数据读取器中。
            connection.Open();
            SqlDataReader sdr 
    = command.ExecuteReader();
            
    while (sdr.Read())
            
    {
             
    // 将「乡镇区市名称」与「邮政编码」新增到数组中。
                values.Add(new CascadingDropDownNameValue(sdr.GetSqlString(0).ToString(), sdr.GetSqlString(1).ToString()));
            }

            
    return values.ToArray();        
        }

    }



    运行结果:
        


  • 相关阅读:
    解决安装vmware-tools出现的“The path "" is not a valid path to the 3.2.0-4-amd64 kernel headers”问题
    页面布局
    CSS属性/尺寸/边框/背景 超级链接
    前端
    索引
    Pymysql
    单表查询,多表查询,子查询
    表的完整性约束
    文件库,文件表,记录的增删改查
    IO多路复用,数据库mysql
  • 原文地址:https://www.cnblogs.com/abcdwxc/p/943358.html
Copyright © 2011-2022 走看看