首页澳门新葡亰官方网站 › CascadingDropDown

CascadingDropDown

机子有点卡,没有办法,开机的时间太长了。
晕,连打字都有点卡……

CascadingDropDown控件用于级连下拉列表的选择,当没有选择第一级下接列表时,第二级是不可选的(从服务器获得数据然后再显示数据)。

1 create database School
  2 go
  3 
  4 use School
  5 go
  6 
  7 create table SchoolInfo
  8 (
  9 schoolId int IDENTITY(1,1)PRIMARY KEY,
 10 schoolName nvarchar(50)
 11 )
 12 go
 13 
 14 create table DepartInfo
 15 (
 16 departId int IDENTITY(1,1)PRIMARY KEY,
 17 schoolId int,
 18 departName nvarchar(50)
 19 )
 20 go
 21 
 22 create table personinfo
 23 (
 24 personId int IDENTITY(1,1) PRIMARY KEY,
 25 departId int,
 26 personName nvarchar(50)
 27 )
 28 go
 29 
 30 --外键1  //先把表建完之后,再建外键
 31 ALTER TABLE DepartInfo ADD CONSTRAINT SchoolInfo_DepartInfo_rf FOREIGN KEY
 32 (
 33     schoolId
 34 )
 35 REFERENCES SchoolInfo(schoolId)
 36 GO
 37 
 38 ALTER TABLE personinfo ADD CONSTRAINT DepartInfo_personinfo_rf FOREIGN KEY
 39 (
 40     departId
 41 )
 42 REFERENCES DepartInfo(departId)
 43 GO
 44 
 45 insert into SchoolInfo(schoolName)
 46 VALUES('涂家小学')
 47 
 48 insert into SchoolInfo(schoolName)
 49 VALUES('江口小学')
 50 
 51 insert into SchoolInfo(schoolName)
 52 VALUES('下炮小学')
 53 
 54 select * from SchoolInfo
 55 
 56 insert into DepartInfo(SchoolId,departName)
 57 values(1,'教务处')
 58 insert into DepartInfo(SchoolId,departName)
 59 values(1,'校办公室')
 60 insert into DepartInfo(SchoolId,departName)
 61 values(1,'学生处')
 62 insert into DepartInfo(SchoolId,departName)
 63 values(2,'党务处')
 64 insert into DepartInfo(SchoolId,departName)
 65 values(2,'校委办公室')
 66 insert into DepartInfo(SchoolId,departName)
 67 values(2,'团支处')
 68 insert into DepartInfo(SchoolId,departName)
 69 values(3,'电教处')
 70 insert into DepartInfo(SchoolId,departName)
 71 values(3,'校办公室')
 72 insert into DepartInfo(SchoolId,departName)
 73 values(3,'外办处')
 74 GO
 75 
 76 select * from DepartInfo
 77 
 78 insert into personinfo(departId,personName)
 79 values(1,'涂聚文')
 80 insert into personinfo(departId,personName)
 81 values(1,'赵金红')
 82 insert into personinfo(departId,personName)
 83 values(1,'涂斯博')
 84 insert into personinfo(departId,personName)
 85 values(2,'涂思懿')
 86 insert into personinfo(departId,personName)
 87 values(2,'涂年生')
 88 insert into personinfo(departId,personName)
 89 values(2,'赵刚')
 90 insert into personinfo(departId,personName)
 91 values(3,'赵思博')
 92 insert into personinfo(departId,personName)
 93 values(3,'高杰')
 94 insert into personinfo(departId,personName)
 95 values(3,'何处')
 96 insert into personinfo(departId,personName)
 97 values(4,'刘杰')
 98 insert into personinfo(departId,personName)
 99 values(4,'胡新胜')
100 insert into personinfo(departId,personName)
101 values(4,'黄瑞斌')
102 insert into personinfo(departId,personName)
103 values(5,'黄岗')
104 insert into personinfo(departId,personName)
105 values(5,'钟艳红')
106 insert into personinfo(departId,personName)
107 values(5,'毛湖南')
108 insert into personinfo(departId,personName)
109 values(6,'涂惟')
110 insert into personinfo(departId,personName)
111 values(6,'毛婷')
112 insert into personinfo(departId,personName)
113 values(6,'曾海波')
114 insert into personinfo(departId,personName)
115 values(7,'李鹏')
116 insert into personinfo(departId,personName)
117 values(7,'赵三')
118 insert into personinfo(departId,personName)
119 values(7,'李四')
120 insert into personinfo(departId,personName)
121 values(8,'王五')
122 insert into personinfo(departId,personName)
123 values(8,'毛六')
124 insert into personinfo(departId,personName)
125 values(8,'陈七')
126 insert into personinfo(departId,personName)
127 values(9,'张八')
128 insert into personinfo(departId,personName)
129 values(9,'艾九')
130 insert into personinfo(departId,personName)
131 values(9,'刘十')
132 
133 
134 select * from personinfo
135 
136 select personid,personname from personinfo where departid=4


属性列表:
TargetControlID:对应的下拉框表控件的ID
Category:当前下拉列表的类型
PromptText:当下拉列表中无数据或没有选择数据时给用户的提示
LoadingText:加载下拉列表数据时的提示
ServicePath:下拉列表获取数据所要的WEB服务路径
ServiceMethod:WEB服务方法
ParentControlID:控制此下拉列表控件的父级控件
SelectedValue:默认的选择值

1。建立数据库
2。CascadingDropDown_DB.aspx代码

控件名:cascadingdropdown
用途即效果:结合dropdownlist做两级联动
控件属性:

常见问题和使用技巧
常见问题:在中了联动下拉列表组之后,页面的回送会引发服务器端掷出“Invalid
postback or callback
argument”的异常,服务器端也无法取得每个下拉框表中的条目?
使用技巧:我们可以在web.config中加入<pages
enableEventValidation="true" />或者在当前页面注册<%@ Page
Language="C#" EnableEventValidation="false"
%>这样会导至应该程序的安全性。
常见问题:如何设置联动下拉列表组中被选中的项目?
使用技巧:DropDownList1.SelectedValue="China";或者:
<ajaxToolkit:CascadingDropDown ID="ccdCity" TargetControlID="ddlCity"
Category="City" PromptText="请选择城市" LoadingText="城市加载中..."
ServicePath="CityService.asmx" ServiceMethod="GetCitiesForProvince"
ParentControlID="ddlProvince" runat="server" SelectedValue="beijing"
/>

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="CascadingDropDown_DB.aspx.cs" Inherits="CascadingDropDown_DB" EnableEventValidation="false" %>
 2 
 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ";
 4 
 5 <html xmlns="" >
 6 <head runat="server">
 7     <title>无标题页</title>
 8 </head>
 9 <body>
10     <form id="form1" runat="server">
11     <div>
12         <asp:ScriptManager ID="ScriptManager1" runat="server">
13         </asp:ScriptManager>
14    
15     </div>
16         <ajaxToolkit:CascadingDropDown ID="CascadingDropDown1" runat="server"
17         TargetControlID="ddlSchool"
18         Category="schoolname"
19          ServicePath="PersonDBService.asmx"
20          ServiceMethod="GetSchool"
21           PromptText="请选择学校"
22           LoadingText="正在加载学校" >
23         </ajaxToolkit:CascadingDropDown>
24         <ajaxToolkit:CascadingDropDown ID="CascadingDropDown2" runat="server" TargetControlID="ddlDepart"
25          Category="departname"
26          ServicePath="PersonDBService.asmx"
27          ServiceMethod="GetDepartsForSchool"
28           PromptText="请选择部门"
29           LoadingText="正在加载部门"
30          ParentControlID="ddlSchool" >
31         </ajaxToolkit:CascadingDropDown>
32         <ajaxToolkit:CascadingDropDown ID="CascadingDropDown3" runat="server" TargetControlID="ddlPerson"
33          Category="personname"
34          ServicePath="PersonDBService.asmx"
35          ServiceMethod="GetPersonsForDepart"
36           PromptText="请选择人员"
37           LoadingText="正在加载人员"
38           ParentControlID="ddlDepart">
39         </ajaxToolkit:CascadingDropDown>
40            
41         <table style="width: 572px; height: 168px;">
42             <tr>
43                 <td style="width: 200px">
44                 </td>
45                 <td>
46                    <strong>选择数据库中的人员</strong> </td>
47             </tr>
48             <tr>
49                 <td style="width: 200px">
50                     1.选择学校:</td>
51                 <td>
52         <asp:DropDownList ID="ddlSchool" runat="server" Width="234px">
53         </asp:DropDownList></td>
54             </tr>
55             <tr>
56                 <td style="width: 200px">
57                     2.选择部门:</td>
58                 <td>
59         <asp:DropDownList ID="ddlDepart" runat="server" Width="232px">
60         </asp:DropDownList></td>
61             </tr>
62             <tr>
63                 <td style="width: 200px">
64                     3.选择人员:</td>
65                 <td>
66         <asp:DropDownList ID="ddlPerson" runat="server" Width="230px" OnSelectedIndexChanged="ddlPerson_SelectedIndexChanged" AutoPostBack="True">
67         </asp:DropDownList></td>
68             </tr>
69             <tr>
70                 <td colspan="2">
71                   <asp:UpdatePanel ID="UpdatePanel1" runat="server">
72                         <ContentTemplate>
73                     <asp:Label ID="Label1" runat="server" Width="341px"></asp:Label>
74                         </ContentTemplate>
75                      <Triggers>
76                           <asp:AsyncPostBackTrigger ControlID="ddlPerson" EventName="SelectedIndexChanged" />
77                      </Triggers>
78                     </asp:UpdatePanel>
79                 </td>
80             </tr>
81         </table>
82     </form>
83 </body>
84 </html>

属性

说明

TargetControlID

要控制的dropdownlist的id

Category

主要就是为你CascadingDropDownr控件对应的下拉列表控件选定的值取个名字,好区分是下拉列表的值。怎么样说了,我将它简单的理解成就是给selectedvalue取了一个别名,要是理解错误,还望网友们指正。

PromptText

没有选择时显示的文字

LoadingText

加载数据时显示的文字

ServicePath

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

ServiceMethod

获取数据的Web Method

ParentControlID

DropDownList的父控件ID

SelectedValue

默认的选择项的值

实例解析一、实现三级连动

三。CascadingDropDown_DB.aspx.cs 代码:


1.前台UI
<body>
    <form id="form1" runat="server">
    <div>
        <asp:ScriptManager ID="ScriptManager1"
runat="server"></asp:ScriptManager>   
    </div>
        <table>
            <tr>
                <td style="width: 100px">学校:</td>
                <td style="width: 100px"><asp:DropDownList
ID="DropDownList1"
runat="server"></asp:DropDownList></td>
                <td style="width: 100px">
                    <ajaxToolkit:CascadingDropDown
ID="CascadingDropDown1" runat="server" Category="schoolname"
                        LoadingText="正在加载学校"
PromptText="请选择学校" ServiceMethod="GetSchool"
TargetControlID="DropDownList1" ServicePath="PersonDBservice.asmx">
                    </ajaxToolkit:CascadingDropDown>
                </td>
            </tr>
            <tr>
                <td style="width: 100px">部门:</td>
                <td style="width: 100px"><asp:DropDownList
ID="DropDownList2"
runat="server"></asp:DropDownList></td>
                <td style="width: 100px">
                    <ajaxToolkit:CascadingDropDown
ID="CascadingDropDown2" runat="server" Category="departname"
                        LoadingText="正在加载部门"
PromptText="请选择部门" ServiceMethod="GetDepartsForSchool"
TargetControlID="DropDownList2" ServicePath="PersonDBservice.asmx">
                    </ajaxToolkit:CascadingDropDown>
                </td>
            </tr>
            <tr>
                <td style="width: 100px">成员</td>
                <td style="width: 100px"><asp:DropDownList
ID="DropDownList3" runat="server"
OnSelectedIndexChanged="DropDownList3_SelectedIndexChanged"
AutoPostBack="true">
                    </asp:DropDownList></td>
                <td style="width: 100px">
                    <ajaxToolkit:CascadingDropDown
ID="CascadingDropDown3" runat="server" Category="personname"
                        LoadingText="正在加载人员"
PromptText="请选择人员" ServiceMethod="GetPersonsForDepart"
TargetControlID="DropDownList3" ServicePath="PersonDBservice.asmx">
                    </ajaxToolkit:CascadingDropDown>
                </td>
            </tr>
        </table>
        <asp:UpdatePanel ID="UpdatePanel1" runat="server">
            <ContentTemplate>
                <asp:Label ID="Label1" runat="server"
Text="Label"></asp:Label>
            </ContentTemplate>
            <Triggers>
            <asp:AsyncPostBackTrigger ControlID="DropDownList3"
EventName="SelectedIndexChanged" />
            </Triggers>
        </asp:UpdatePanel>
    </form>
</body>
2.后台CS
 protected void DropDownList3_SelectedIndexChanged(object sender,
EventArgs e)
    {
        string person = DropDownList1.SelectedItem.Text + "学校" +
DropDownList2.SelectedItem.Text + "部门的" +
DropDownList3.SelectedItem.Text;
        Label1.Text = person;
    }
3.PersonDBservice.cs  WEB服务文件

 1 using System;
 2 using System.Data;
 3 using System.Configuration;
 4 using System.Collections;
 5 using System.Web;
 6 using System.Web.Security;
 7 using System.Web.UI;
 8 using System.Web.UI.WebControls;
 9 using System.Web.UI.WebControls.WebParts;
10 using System.Web.UI.HtmlControls;
11 
12 public partial class CascadingDropDown_DB : System.Web.UI.Page
13 {
14     protected void Page_Load(object sender, EventArgs e)
15     {
16 
17     }
18     protected void ddlPerson_SelectedIndexChanged(object sender, EventArgs e)
19     {
20         //选择的内容-注意此处不是使用的selectvalue
21         string person = ddlSchool.SelectedItem.Text + "学校" + ddlDepart.SelectedItem.Text + "部门的" + ddlPerson.SelectedItem.Text;
22         //动态显示
23         Label1.Text = "您选择的是-" + person;
24     }
25 }

aspx页面:
托两个dropdownlist控件到页面,在托两个cascadingdropdown控件,并根据需要设置属性
澳门新葡亰官方网站,eg: 
 <asp:DropDownList ID="da" runat="server">
        </asp:DropDownList>
        <br />
        <br />
        <cc1:cascadingdropdown id="Cascadingda" runat="server"
TargetControlID="da" LoadingText="正在加载...." PromptText="请选择"
Category="dalei" ServiceMethod="daleiList"
ServicePath="WebService.asmx">
</cc1:cascadingdropdown> 
        <br />
        <asp:DropDownList ID="xiao" runat="server">
        </asp:DropDownList> <br />
        <br /><cc1:cascadingdropdown id="Cascadingxiao"
runat="server" TargetControlID="xiao" LoadingText="正在加载....."
PromptText="请选择" Category="xiaolei" ServiceMethod="xiaoleiList"
ServicePath="WebService.asmx" ParentControlID="da"> 
//对比两个控件的属性设置,这个比上一个多了一个ParentControlID="da",这里设置他的父控件的id为“da”
        </cc1:CascadingDropDown>

using System;
using System.Web;
using System.Collections;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.SqlClient;
using System.Collections.Specialized;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using AjaxControlToolkit;

四PersonDBService.asmx 服务代码:


/// <summary>
/// PersonDBservice 的摘要说明
/// </summary>
[WebService(Namespace = "]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class PersonDBservice : System.Web.Services.WebService {

1 <%@ WebService Language="C#" CodeBehind="~/App_Code/PersonDBService.cs" Class="PersonDBService" %>

WebService.cs页面:
using System;
using System.Web;
using System.Collections; 
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Data.SqlClient;  //数据库连接所需命名空间
using System.Data;  //Dataset所需的命名空间
using System.Collections.Generic; 
//这个是必须添加的,List<>所需的命名空间。
using System.Collections.Specialized;
using AjaxControlToolkit;  //ajax控件所需命名空间

    public PersonDBservice () {

五PersonDBService.cs 代码:

/// <summary>
/// WebService 的摘要说明
/// </summary>
[WebService(Namespace = "]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]  
//这个是必须的,要不会出现WebMethod error
12030等的错误,我做的时候就没有添加,弄了半天才发现原来是这个错误。并且要确保在方法的前面。
public class WebService : System.Web.Services.WebService {

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

  1 using System;
  2 using System.Web;
  3 using System.Collections;
  4 using System.Web.Services;
  5 using System.Web.Services.Protocols;
  6 
  7 using AjaxControlToolkit;
  8 using System.Data;
  9 using System.Data.SqlClient;
 10 using System.Collections.Specialized;
 11 using System.Collections.Generic;
 12 using System.Configuration;
 13 
 14 /// <summary>
 15 /// PersonDBService 的摘要说明
 16 /// </summary>
 17 [WebService(Namespace = "]
 18 [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
 19 [System.Web.Script.Services.ScriptService]
 20 public class PersonDBService : System.Web.Services.WebService {
 21 
 22     public PersonDBService () {
 23 
 24         //如果使用设计的组件,请取消注释以下行
 25         //InitializeComponent();
 26     }
 27     /// <summary>
 28     /// 获取学校信息
 29     /// </summary>
 30     /// <param name="knownCategoryValues">父级条件</param>
 31     /// <param name="category">目录</param>
 32     /// <returns>返回数据</returns>
 33     [WebMethod]
 34     public CascadingDropDownNameValue[] GetSchool( string knownCategoryValues, string category)
 35     {
 36         List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
 37         //返回学校表信息
 38         DataTable schools = getSchoolTable();
 39         //遍历表中的行
 40         foreach (DataRow dr in schools.Rows)
 41         {
 42             string school = (string)dr["schoolname"];
 43             int schoolId = (int)dr["schoolid"];
 44             //表数据添加到级联菜单中
 45             values.Add(new CascadingDropDownNameValue(
 46               school, schoolId.ToString()));
 47         }
 48         return values.ToArray();
 49     }
 50     //获取部门信息
 51     [WebMethod]
 52     public CascadingDropDownNameValue[] GetDepartsForSchool(string knownCategoryValues,string category)
 53     {
 54         //找到指定条件的信息集合
 55         StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
 56         int schoolId;
 57         //找出指定值的ID。
 58         if (!kv.ContainsKey("schoolname") ||
 59             !Int32.TryParse(kv["schoolname"], out schoolId))
 60         {
 61             return null;
 62         }
 63         //根据学校id返回部门表
 64         DataTable departs = getDepartTable(schoolId);
 65         List<CascadingDropDownNameValue> values =  new List<CascadingDropDownNameValue>();
 66         //遍历部门表
 67         foreach (DataRow dr in departs.Rows)
 68         {
 69             //添加部门信息到级联菜单
 70             values.Add(new CascadingDropDownNameValue(
 71               (string)dr["departname"], dr["departid"].ToString()));
 72         }
 73         return values.ToArray();
 74     }
 75     //获取人员信息
 76     [WebMethod]
 77     public CascadingDropDownNameValue[] GetPersonsForDepart( string knownCategoryValues, string category)
 78     {
 79         //找到指定条件的集合
 80         StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString( knownCategoryValues);
 81         int departId;
 82         //获取指定的ID
 83         if (!kv.ContainsKey("departname") ||
 84             !Int32.TryParse(kv["departname"], out departId))
 85         {
 86             return null;
 87         }
 88         //根据部门ID返回人员表
 89         DataTable persons = getPersonTable(departId);
 90         List<CascadingDropDownNameValue> values = new List<CascadingDropDownNameValue>();
 91         //遍历人员表
 92         foreach (DataRow dr in persons.Rows)
 93         {
 94             //添加人员信息到级联菜单
 95             values.Add(new CascadingDropDownNameValue(
 96               (string)dr["personname"], dr["personid"].ToString()));
 97         }
 98         return values.ToArray();
 99     }
100     /// <summary>
101     /// 获取学校表数据
102     /// </summary>
103     public DataTable getSchoolTable()
104     {
105         //创建数据库连接
106         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SchoolConnectionString"].ToString());
107         SqlDataAdapter da = new SqlDataAdapter("select schoolid,schoolname  from schoolinfo", conn);
108         DataSet ds = new DataSet();
109         //填充数据内容
110         da.Fill(ds);
111         return ds.Tables[0];
112     }
113     /// <summary>
114     /// 获取指定学校ID的部门信息
115     /// </summary>
116     public DataTable getDepartTable(int schoolid)
117     {
118         //创建数据库连接
119         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SchoolConnectionString"].ToString());
120         SqlDataAdapter da = new SqlDataAdapter("select departid,departname from departinfo where schoolid=" + schoolid.ToString(), conn);
121         DataSet ds = new DataSet();
122         //填充数据内容
123         da.Fill(ds);
124         return ds.Tables[0];
125     }
126     /// <summary>
127     /// 获取指定部门ID的人员信息
128     /// </summary>
129     public DataTable getPersonTable(int departid)
130     {
131         //创建数据库连接
132         SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["SchoolConnectionString"].ToString());
133         SqlDataAdapter da = new SqlDataAdapter("select personid,personname from personinfo where departid="+ departid.ToString(), conn);
134         DataSet ds = new DataSet();
135         //填充数据内容
136         da.Fill(ds);
137         return ds.Tables[0];
138     }
139 }

    public WebService () {

    [WebMethod]
    public string HelloWorld() {
        return "Hello World";
    }

七:Web.config 数据库连接代码:
    <connectionStrings>
        <add name="SchoolConnectionString" connectionString="Data
Source=GEOVI-5E9530747SQLEXPRESS;Initial Catalog=School;Integrated
Security=True"
   providerName="System.Data.SqlClient" />
    </connectionStrings>

        //如果使用设计的组件,请取消注释以下行
        //InitializeComponent();
    }

    public DataTable getSchoolTable()
    {
        SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConStr"].ToString());
        SqlDataAdapter sdr = new SqlDataAdapter("select
schoolid,schoolname from schoolinfo", con);
        DataSet ds = new DataSet();
        sdr.Fill(ds);
        return ds.Tables[0];
    }

    [WebMethod]
    public CascadingDropDownNameValue[] daleiList(string
knownCategoryValues, string category) 
这里的参数等都不可以改变,除了daleiList可以是自己定义的之外,这里的daleiList虽然可以自己定义,但是一定要确保和aspx页面的ServiceMethod="daleiList"
一致,否则会出现WebMethod error
    {
        //StringDictionary kv =
CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues); 
//如果是第一级则这个可以不要
        SqlConnection conn = new
SqlConnection("server=(local);uid=sa;pwd=sa;database=northwind");
        SqlDataAdapter da = new SqlDataAdapter("select 
lastname,ReportsTo from employees", conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataRow[] row = ds.Tables[0].Select();
        List<CascadingDropDownNameValue> values = new
List<CascadingDropDownNameValue>(); 
//将值填充到dropdownlist控件中,这里的参数也不是可以改变的。
        foreach (DataRow dr in row)
        {

    public DataTable getDepartTable(int schoolid)
    {
        SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConStr"].ToString());
        SqlDataAdapter sdr = new SqlDataAdapter("select
departid,departname from departinfo where
schoolid="+schoolid.ToString(), con);
        DataSet ds = new DataSet();
        sdr.Fill(ds);
        return ds.Tables[0];
    }

            values.Add(new
CascadingDropDownNameValue(dr["lastname"].ToString().Trim(),
dr["ReportsTo"].ToString().Trim()));  //这里添加一个text/value对
        }
        return values.ToArray();   //返回
    }
    [WebMethod]
    public CascadingDropDownNameValue[] xiaoleiList(string
knownCategoryValues, string category)
    {
        StringDictionary kv =
CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);//二级下拉列表,得取得一级的category的值,也就是当前选定的值。以下代码是判断上级列表的category值,存在或不是空的话把值赋给daleiid; dalei是一级CascadingDropDown设置的category属性名称 

    public DataTable getSchoolTable(int departid)
    {
        SqlConnection con = new
SqlConnection(ConfigurationManager.ConnectionStrings["SqlServerConStr"].ToString());
        SqlDataAdapter sdr = new SqlDataAdapter("select
personid,personname from personinfo where
personid="+departid.ToString(), con);
        DataSet ds = new DataSet();
        sdr.Fill(ds);
        return ds.Tables[0];
    }

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

    [WebMethod]
    public CascadingDropDownNameValue[] GetSchool(string
knownCategoryValue, string category)
    {
        List<CascadingDropDownNameValue> values = new
List<CascadingDropDownNameValue>();
        DataTable schools = getSchoolTable();
        foreach (DataRow dr in schools.Rows)
        {
            string school = (string)dr["schoolname"];
            int schoolid=(int)dr["schoolid"];
            values.Add(new
CascadingDropDownNameValue(school,schoolid.ToString()));

        SqlConnection conn = new
SqlConnection("server=(local);uid=sa;pwd=sa;database=northwind");
        SqlDataAdapter da = new SqlDataAdapter("select 
firstname,employeeid from employees where ReportsTo="+daleiid, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        DataRow[] row = ds.Tables[0].Select();
        List<CascadingDropDownNameValue> values = new
List<CascadingDropDownNameValue>();
        foreach (DataRow dr in row)
        {
            values.Add(new
CascadingDropDownNameValue(dr["firstname"].ToString(),
dr["employeeid"].ToString()));
        }
        return values.ToArray();
    }

        }
        return values.ToArray();
    }

转载本站文章请注明出处:澳门新葡亰官方网站 http://www.radioritmo-bl.com/?p=1290

上一篇:

下一篇:

相关文章