62,041
社区成员
发帖
与我相关
我的任务
分享
/*===動態連接=============================================================================================*/
[WebMethod(Description = "動態三級聯動—Get國家", EnableSession = true)]
public CascadingDropDownNameValue[] GetCountriesFromDB(string knownCategoryValues, string category)
{
List<CascadingDropDownNameValue> countryList = new List<CascadingDropDownNameValue>();
AjaxCascadingDropDown myAjaxCascadingDropDown = new AjaxCascadingDropDown();
DataSet ds = myAjaxCascadingDropDown.AjaxCascadingDropDownDS("0");
foreach(DataRow row in ds.Tables[0].Rows)
{
countryList.Add(new CascadingDropDownNameValue(row["text"].ToString(), row["value"].ToString()));
}
return countryList.ToArray();
}
[WebMethod(Description = "動態三級聯動—Get省份", EnableSession = true)]
public CascadingDropDownNameValue[] GetProvinceFromDB(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> countryList = new List<CascadingDropDownNameValue>();
AjaxCascadingDropDown myAjaxCascadingDropDown = new AjaxCascadingDropDown();
DataSet ds = myAjaxCascadingDropDown.AjaxCascadingDropDownDS(kv["Country"]);
foreach (DataRow row in ds.Tables[0].Rows)
{
countryList.Add(new CascadingDropDownNameValue(row["text"].ToString(), row["value"].ToString()));
}
return countryList.ToArray();
}
[WebMethod(Description = "動態三級聯動—GetCity", EnableSession = true)]
public CascadingDropDownNameValue[] GetCitiesFromDB(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
List<CascadingDropDownNameValue> countryList = new List<CascadingDropDownNameValue>();
AjaxCascadingDropDown myAjaxCascadingDropDown = new AjaxCascadingDropDown();
DataSet ds = myAjaxCascadingDropDown.AjaxCascadingDropDownDS(kv["Province"]);
foreach (DataRow row in ds.Tables[0].Rows)
{
countryList.Add(new CascadingDropDownNameValue(row["text"].ToString(), row["value"].ToString()));
}
return countryList.ToArray();
}
}
using System;
using System.Collections;
using System.Collections.Specialized;//for StringDictionary類
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.Xml.Linq;
using AjaxControlToolkit;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;//for List類
/// <summary>
/// N級聯動 的摘要描述
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// 若要允許使用 ASP.NET AJAX 從指令碼呼叫此 Web 服務,請取消註解下一行。
[System.Web.Script.Services.ScriptService]
public class N級聯動 : System.Web.Services.WebService {
public N級聯動()
{
//如果使用設計的元件,請取消註解下行程式碼
//InitializeComponent();
}
[WebMethod]
public string HelloWorld() {
return "Hello World";
}
[WebMethod(Description = "靜態四級聯動—Get國家", EnableSession = true)]
public CascadingDropDownNameValue[] GetCountries(string knownCategoryValues, string category)
{
List<CascadingDropDownNameValue> countryList = new List<CascadingDropDownNameValue>();
//靜態添加,你也可以動態添加。
countryList.Add(new CascadingDropDownNameValue("中国", "china"));
countryList.Add(new CascadingDropDownNameValue("其他", "other"));
return countryList.ToArray();
}
/// <summary>
/// param knownCategoryValues:DropdownList的Text
/// param category:DropdownList的Value
/// 那么為什么要兩個參數呢,不是一個參數就能確定了嗎?
/// StringDictionary類:将键和值强类型化为字符串而不是对象来实现哈希表,其實我也不明白
/// </summary>
/// <param name="knownCategoryValues"></param>
/// <param name="category"></param>
/// <returns></returns>
[WebMethod(Description = "靜態四級聯動—Get省份", EnableSession = true)]
public CascadingDropDownNameValue[] GetProvincesForCountry(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
if (kv["Country"] == "other")
{
List<CascadingDropDownNameValue> provinceList = new List<CascadingDropDownNameValue>();
provinceList.Add(new CascadingDropDownNameValue("紐約", "newyork"));
provinceList.Add(new CascadingDropDownNameValue("巴黎", "bali"));
provinceList.Add(new CascadingDropDownNameValue("加拿大", "Canada"));
return provinceList.ToArray();
}
else if (kv["Country"] == "china")
{
List<CascadingDropDownNameValue> provinceList = new List<CascadingDropDownNameValue>();
provinceList.Add(new CascadingDropDownNameValue("日本省", "japan"));
provinceList.Add(new CascadingDropDownNameValue("辽宁省", "liaoning"));
provinceList.Add(new CascadingDropDownNameValue("江蘇省", "jiangsu"));
provinceList.Add(new CascadingDropDownNameValue("上海", "shanghai"));
return provinceList.ToArray();
}
else
{
return null;
}
}
[WebMethod(Description = "靜態四級聯動—Get城市", EnableSession = true)]
public CascadingDropDownNameValue[] GetCitiesForProvince(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
if (kv["Province"] == "japan")
{
List<CascadingDropDownNameValue> cityList = new List<CascadingDropDownNameValue>();
cityList.Add(new CascadingDropDownNameValue("東京", "tokyo"));
cityList.Add(new CascadingDropDownNameValue("大阪", "daban"));
return cityList.ToArray();
}
else if (kv["Province"] == "liaoning")
{
List<CascadingDropDownNameValue> cityList = new List<CascadingDropDownNameValue>();
cityList.Add(new CascadingDropDownNameValue("沈阳", "shenyang"));
cityList.Add(new CascadingDropDownNameValue("大连", "dalian"));
return cityList.ToArray();
}
else if (kv["Province"] == "jiangsu")
{
List<CascadingDropDownNameValue> cityList = new List<CascadingDropDownNameValue>();
cityList.Add(new CascadingDropDownNameValue("無錫", "wuxi"));
cityList.Add(new CascadingDropDownNameValue("東臺", "dongtai"));
return cityList.ToArray();
}
else if (kv["Province"] == "shanghai")
{
List<CascadingDropDownNameValue> cityList = new List<CascadingDropDownNameValue>();
cityList.Add(new CascadingDropDownNameValue("上海", "shanghai"));
return cityList.ToArray();
}
else
{
return null;
}
}
[WebMethod(Description = "靜態四級聯動—GetSchool", EnableSession = true)]
public CascadingDropDownNameValue[] GetSchoolForCity(string knownCategoryValues, string category)
{
StringDictionary kv = CascadingDropDown.ParseKnownCategoryValuesString(knownCategoryValues);
if (kv["City"] == "wuxi")
{
List<CascadingDropDownNameValue> schoolList = new List<CascadingDropDownNameValue>();
schoolList.Add(new CascadingDropDownNameValue("江南大學", "jiangnandaxue"));
schoolList.Add(new CascadingDropDownNameValue("太湖學院", "taihuxueyuan"));
return schoolList.ToArray();
}
else if (kv["City"] == "dongtai")
{
List<CascadingDropDownNameValue> schoolList = new List<CascadingDropDownNameValue>();
schoolList.Add(new CascadingDropDownNameValue("東臺中學", "dongtaizhongxue"));
schoolList.Add(new CascadingDropDownNameValue("第三中學", "disanzhongxue"));
return schoolList.ToArray();
}
else
{
return null;
}
}
using System;
public partial class 各種小例子_N級聯動_N級聯動 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void ddlSchool_SelectedIndexChanged(object sender, EventArgs e)
{
string country = ddlCountry.SelectedItem.Text;
string province = ddlProvince.SelectedItem.Text;
string city = ddlCity.SelectedItem.Text;
string school = ddlSchool.SelectedItem.Text;
Label1.Text = string.Format("You have chosen {0},{1},{2},{3}", country, province, city, school);
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="N級聯動.aspx.cs" Inherits="各種小例子_N級聯動_N級聯動" EnableEventValidation="false" %>
<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>未命名頁面</title>
<script type="text/javascript">
function pageLoad() {
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server" />
</div>
<div>
<asp:DropDownList ID="ddlCountry" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlProvince" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlCity" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlSchool" runat="server"
onselectedindexchanged="ddlSchool_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>
</div>
<div>
<cc1:CascadingDropDown ID="ccdCountry" runat="server"
TargetControlID="ddlCountry"
Category="Country"
PromptText="-請選擇國家-"
LoadingText="國家加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetCountries"></cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="ccdProvince" runat="server"
TargetControlID="ddlProvince"
Category="Province"
PromptText="-請選擇省份-"
LoadingText="省份加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetProvincesForCountry"
ParentControlID="ddlCountry"></cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="ccdCity" runat="server"
TargetControlID="ddlCity"
Category="City"
PromptText="-請選擇城市-"
LoadingText="城市加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetCitiesForProvince"
ParentControlID="ddlProvince"></cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="ccdSchool" runat="server"
TargetControlID="ddlSchool"
Category="School"
PromptText="-請選擇學校-"
LoadingText="學校加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetSchoolForCity"
ParentControlID="ddlCity"></cc1:CascadingDropDown>
</div>
<asp:UpdatePanel ID="UpdatePanel2" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" ></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="ddlSchool" EventName="SelectedIndexChanged" ></asp:AsyncPostBackTrigger>
</Triggers>
</asp:UpdatePanel>
<div>
<asp:DropDownList ID="ddlCountryFromDB" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlProvinceFromDB" runat="server"></asp:DropDownList>
<asp:DropDownList ID="ddlCityFromDB" runat="server"></asp:DropDownList>
</div>
<div>
<cc1:CascadingDropDown ID="ccdCountryFromDB" runat="server"
TargetControlID="ddlCountryFromDB"
Category="Country"
PromptText="-請選擇國家-"
LoadingText="國家加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetCountriesFromDB"></cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="ccdProvinceFromDB" runat="server"
TargetControlID="ddlProvinceFromDB"
Category="Province"
PromptText="-請選擇省份-"
LoadingText="省份加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetProvinceFromDB"
ParentControlID="ddlCountryFromDB"></cc1:CascadingDropDown>
<cc1:CascadingDropDown ID="ccdCityFromDB" runat="server"
TargetControlID="ddlCityFromDB"
Category="City"
PromptText="-請選擇城市-"
LoadingText="城市加載中……"
ServicePath="N級聯動.asmx"
ServiceMethod="GetCitiesFromDB"
ParentControlID="ddlProvinceFromDB"></cc1:CascadingDropDown>
</div>
</form>
</body>
</html>