国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > AJAX > 正文

怎樣用AjaxPro實現二級聯動

2024-09-01 08:26:22
字體:
來源:轉載
供稿:網友

在實際asp.net項目中經常會遇到無刷新二級或者N級(N>=2)聯動情況,其實N級聯動和二級聯動的原理都是一樣的,實現這種辦法有很多,一種是純腳本實現(動態生成Array數組),一種 是采用微軟的Ajax.net中的UpdatePanel來實現,今天我給大家來展示如何采用AjaxPro來實現,相關文章請參考《AjaxPro與服務器端交互過程中如何傳值》一文。

前臺aspx頁面:
 

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>

<!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>AjaxPro實現二級聯動</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<table width="200" border="0" align="center" cellpadding="3" cellspacing="1" bordercolor="#FFFFFF" style="border-collapse: collapse">
<tr align="center">
<td height="20" colspan="2">
<strong>AjaxPro實現二級聯動</strong>&nbsp;</td>
</tr>
<tr class="tdbg" >
<td width="30%">
省份</td>
<td width="70%" align="left">
<asp:DropDownList ID="ddlStateList" runat="server" DataTextField="StateName" DataValueField="StateId">
</asp:DropDownList></td>
</tr>
<tr class="tdbg" >
<td><strong>城市</strong></td>
<td align="left">
<asp:DropDownList ID="ddlCityList" runat="server">
</asp:DropDownList></td>
</tr>
</table>

</div>
<script language="javascript" type="text/javascript" defer="defer">
function ShowCity(id)
{
var res=Test.GetCityList(parseInt(id)).value;
var ddl=document.getElementById("<%=ddlCityList.UniqueID %>");
ddl.length=0;
if(res)
{
//res是服務器返回的一個List<City>集合
for(var i=0;i<res.length;i++)
{
ddl.options.add(new Option(res[i].CityName,res[i].CityId));
//從上面可以看出可以直接調用List<City>集合中的元素和它們的屬性
}
}
}
</script>
</form>
</body>
</html>
后臺.cs代碼,注意為了省事,我把兩個實體類也一同歸并到一個.cs文件中了。
Test.cs
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Collections.Generic;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;


/**
* 寫作說明:本文展示了如何利用AjaxPro與服務器交互,并且還展示了在Js中可以直接調用服務器返回的集合和直接調用服務器上class的屬性
* 作者:周公
* 日期:2008-1-1
* 首發地址:http://blog.csdn.net/zhoufoxcn/
**/
public partial class Test : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
List<State> stateList = new List<State>(10);
stateList.Add(new State(0, "選擇城市"));//默認選項
stateList.Add(new State(1,"北京"));
stateList.Add(new State(2, "天津"));
stateList.Add(new State(3, "上海"));
stateList.Add(new State(4, "湖北"));
stateList.Add(new State(5, "湖南"));
stateList.Add(new State(6, "山西"));
ddlStateList.DataSource = stateList;
ddlStateList.DataBind();
ddlStateList.Attributes["onchange"] = "ShowCity(this.options[selectedIndex].value)";
}
AjaxPro.Utility.RegisterTypeForAjax(typeof(Test));//注冊
}
[AjaxPro.AjaxMethod]
public List<City> GetCityList(int stateId)
{
//呵呵,都是我熟悉的城市或者區
List<City> cityList = new List<City>(12);
cityList.Add(new City(11, "海淀區", 1));
cityList.Add(new City(12, "朝陽區", 1));
cityList.Add(new City(13, "大港區", 2));
cityList.Add(new City(14, "南開區", 2));
cityList.Add(new City(15, "普陀區", 3));
cityList.Add(new City(16, "黃浦區", 3));
cityList.Add(new City(17, "黃岡市", 4));
cityList.Add(new City(18, "荊州市", 4));
cityList.Add(new City(19, "長沙市", 5));
cityList.Add(new City(20, "岳陽市", 5));
cityList.Add(new City(21, "太原市", 6));
cityList.Add(new City(22, "大同市", 6));
List<City> tempList = new List<City>();
for (int i = 0; i < cityList.Count; i++)
{
if (cityList[i].StateId == stateId)
{
tempList.Add(cityList[i]);
}
}
return tempList;
}
}
/// <summary>
/// 省份信息
/// </summary>
public class State
{
private int stateId;
private string stateName;
/// <summary>
/// 省份名
/// </summary>
public string StateName
{
get { return stateName; }
set { stateName = value; }
}

/// <summary>
/// 省份編號
/// </summary>
public int StateId
{
get { return stateId; }
set { stateId = value; }
}
public State(int stateId, string stateName)
{
this.stateId = stateId;
this.stateName = stateName;
}
}
/// <summary>
/// 城市信息
/// </summary>
public class City
{
private int cityId;
private int stateId;
private string cityName;
/// <summary>
/// 城市名稱
/// </summary>
public string CityName
{
get { return cityName; }
set { cityName = value; }
}

/// <summary>
/// 城市所在省份編號
/// </summary>
public int StateId
{
get { return stateId; }
set { stateId = value; }
}

/// <summary>
/// 城市編號
/// </summary>
public int CityId
{
get { return cityId; }
set { cityId = value; }
}

public City(int cityId, string cityName, int stateId)
{
this.cityId = cityId;
this.cityName = cityName;
this.stateId = stateId;
}

}

程序運行效果:
未選擇的效果:

選擇北京的效果:



選擇周公的家鄉湖北黃岡的效果:

 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉节县| 洛扎县| 阿尔山市| 社旗县| 新宾| 定安县| 昌乐县| 静乐县| 贺州市| 桑日县| 怀来县| 长治县| 阿巴嘎旗| 镇坪县| 临邑县| 扎兰屯市| 九龙城区| 大足县| 宿州市| 桦甸市| 杭锦后旗| 洛隆县| 新干县| 内黄县| 聂拉木县| 绥滨县| 齐河县| 曲松县| 炎陵县| 衡山县| 右玉县| 和硕县| 蓝田县| 咸丰县| 盱眙县| 拉孜县| 临桂县| 巴中市| 定兴县| 庆安县| 武宁县|