日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ajax实现多级联动菜单,jquery 实现二级/三级/多级联动菜单的思路及代码

發(fā)布時間:2025/3/15 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ajax实现多级联动菜单,jquery 实现二级/三级/多级联动菜单的思路及代码 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

本文介紹使用jquery的AJAX功能和asp.net來實現(xiàn)省市區(qū)的三級聯(lián)動效果,其他二級、三級或多級聯(lián)動也可以按照此方法完成。

文章中涉及到的數(shù)據(jù)表為City,為方便管理。

設(shè)計此表如下

ID:自增長字段

City_Name:城市名稱

City_Code:城市代碼

我們根據(jù)城市代碼來查詢省、市、區(qū)。城市代碼結(jié)構(gòu)大致如下:

內(nèi)蒙古:150000,呼和浩特:150100,新城區(qū):150101。

其他地區(qū)代碼與此一樣,省級為省級編號+0000,市級為省級編號+市級編號+00,地區(qū)為省級編號+市級編號+地區(qū)編號。

City.ASPX代碼為:

復(fù)制代碼 代碼如下:

jQuery + ASP.NET實現(xiàn)三級聯(lián)動

#dpCity{ display:none; position:relative;}

#dpArea{ display:none;position:relative;}

省:

市:

區(qū):

JS代碼:

復(fù)制代碼 代碼如下:

jQuery(document).ready(function () {

var dp1 = jQuery("#dpProvince");

var dp2 = jQuery("#dpCity");

var dp3 = jQuery("#dpArea");

//填充省的數(shù)據(jù)

loadAreas("", "dpProvince");

//給省綁定事件,觸發(fā)事件后填充市的數(shù)據(jù)

jQuery(dp1).bind("change keyup", function () {

var provinceID = dp1.attr("value");

loadAreas(provinceID, "dpCity");

dp2.fadeIn("slow");

});

//給市綁定事件,觸發(fā)事件后填充區(qū)的數(shù)據(jù)

jQuery(dp2).bind("change keyup", function () {

var cityID = dp2.attr("value");

loadAreas(cityID, "dpArea");

dp3.fadeIn("slow");

});

});

function loadAreas(val, item) {

jQuery.ajax({

type: "post",

url: "CityLoader.asmx/GetCityList",

data: {

code: val,

a: Math.random()

},

error: function () {

return false;

},

success: function (data) {

var i;

var json = eval(data);

jQuery("#" + item).append("請選擇");

for (i = 0; i < json.length; i++) {

jQuery("#" + item).append(jQuery("").val(json[i].c_code).html(json[i].c_name));

};

}

});

}

后臺代碼:

復(fù)制代碼 代碼如下:

//實例類

public class CityModel

{

int _id;

string _cityname;

string _citycode;

public int ID

{

set { _id = value; }

get { return _id; }

}

public string CityName

{

set { _cityname = value; }

get { return _cityname; }

}

public string CityCode

{

set { _citycode = value; }

get { return _citycode; }

}

}

//DAL層,返回DataTable,使用通用SqlHelper

public DataTable CityList(string pcode)

{

string SQL = "SELECT * FROM city WHERE 1=1";

if (!string.IsNullOrEmpty(pcode))

{

if (pcode.Substring(2, 2) != "00")

{

SQL = SQL + " AND RIGHT(citycode,2)<>'00' AND LEFT(citycode,4)=LEFT(@pcode,4)";

}

else

{

SQL = SQL + " AND RIGHT(citycode,2)='00' AND LEFT(RIGHT(citycode,4),2)<>'00' AND LEFT(citycode,2)=LEFT(@pcode,2)";

}

}

else

{

SQL = SQL + " AND LEFT(citycode,2)<>'00' AND RIGHT(citycode,4)='0000'";

}

SQL = SQL + " ORDER BY sorts ASC";

SqlParameter[] Param ={

new SqlParameter("@pcode",pcode)

};

using (SqlConnection conn = new SqlConnection(DBUtility.SqlHelper.ConnectionStringLocalTransaction))

{

DataSet ds = DBUtility.SqlHelper.ExecuteDataSet(conn, CommandType.Text, SQL, Param);

return ds.Tables[0];

}

}

//BLL層,返回City的泛型列表

public List CityList(string code)

{

List list = new List();

DAL. CityDAL cd = new DAL.CityDAL();

DataTable dt = cd.CityList(code);

if (dt.Rows.Count > 0)

{

for (int i = 0; i < dt.Rows.Count; i++)

{

CityModel cm = new CityModel();

cm.ID = int.Parse(dt.Rows[i]["id"].ToString());

cm.CityName = dt.Rows[i]["cityname"].ToString();

cm.CityCode = dt.Rows[i]["citycode"].ToString();

list.Add(cm);

}

}

return list;

}

CityLoader.asmx:

復(fù)制代碼 代碼如下:

///

/// CityLoader 的摘要說明

///

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[System.ComponentModel.ToolboxItem(false)]

// 若要允許使用 ASP.NET AJAX 從腳本中調(diào)用此 Web 服務(wù),請取消對下行的注釋。

// [System.Web.Script.Services.ScriptService]

public class CityLoader : System.Web.Services.WebService

{

[WebMethod]

public void GetCityList(string code)

{

CityBLL cb = new CityBLL();

StringBuilder sb = new StringBuilder();

List cm = cb.CityList(code);

sb.Append("[");

if (cm.Count > 0)

{

for (int i = 0; i < cm.Count; i++)

{

CityModel model = cm[i];

sb.Append("{");

sb.AppendFormat(@"""c_name"":""{0}"",", model.CityName);

sb.AppendFormat(@"""c_code"":""{0}""", model.CityCode);

sb.Append("}");

if (i < cm.Count - 1)

{

sb.Append(",");

}

}

}

sb.Append("]");

System.Web.HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");

System.Web.HttpContext.Current.Response.Write(sb.ToString());

}

}

總結(jié)

以上是生活随笔為你收集整理的ajax实现多级联动菜单,jquery 实现二级/三级/多级联动菜单的思路及代码的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。