jQuery+ajax实现无刷新级联菜单示例

 更新时间:2015年05月21日 10:53:18   投稿:hebedich  
这篇文章主要介绍了jQuery+ajax实现无刷新级联菜单示例,代码很完整,也非常实用,有需要的小伙伴可以参考下。

前台用AJAX直接调用后台方法,老有人发帖提问,没事做个示例

下面是做的一个前台用JQUERY,AJAX调用后台方法做的无刷新级联菜单

CasMenu.aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" %> 
 
<!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 id="Head1" runat="server"> 
  <title>Porschev--前台JS(Jquery)调用后台方法 级联菜单</title> 
  <script src="js/jquery-1.3.2-vsdoc.js" mce_src="js/jquery-1.3.2-vsdoc.js" type="text/javascript"></mce:script> 
  <script type="text/javascript"> 
    $(function() {       
      $("#selPro").change(function() {  //省份下拉菜单的change事件         
        var params = '{str:"' + $(this).val() + '"}'; //此处参数名要注意和后台方法参数名要一致                 
        $.ajax({           
          type: "POST",          //提交方式           
          url: "CasMenu.aspx/ShowCity",  //提交的页面/方法名           
          data: params,          //参数(如果没有参数:null)           
          dataType: "text",        //类型           
          contentType: "application/json; charset=utf-8",           
          beforeSend: function(XMLHttpRequest) {             
            $('#tipsDiv').text("正在查询...");           
          },           
          success: function(msg) {                         
            $('#tipsDiv').text("查询成功!");             
            $("#selCity option").each(function() {               
              $(this).remove();  //移除原有项             
            });             
            $("<option value='0'>===请选择===</option>").appendTo("#selCity");  //添加一个默认项             
            $(eval("(" + msg + ")").d).appendTo("#selCity");    //将返回来的项添加到下拉菜单中           
          },           
          error: function(xhr, msg, e) {             
            alert("error");           
          }         
         });       
      });     
    });   
    </script> 
</head> 
<body> 
  <form id="form1" runat="server"> 
  <div> 
    Porschev--前台JS(Jquery)调用后台方法 级联菜单<br /> 
    <br /> 
    <select id="selPro" name="selPro"> 
      <%=strPro %> 
    </select>省(直辖市) 
    <select id="selCity" name="selCity"> 
      <option value="0">===请选择===</option> 
    </select>(市) 
  </div> 
  <div id="tipsDiv"> 
  </div> 
  </form> 
</body> 
</html> 

CasMenu.aspx.cs

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using CasMenuModels; 
using CasMenuBLL; 
using System.Text; 
public partial class _Default : System.Web.UI.Page  
{   
  public static string strPro = string.Empty; //省份下拉项   
  public static string strCity = string.Empty; //城市下拉项   
  protected void Page_Load(object sender, EventArgs e)   
  {     
    if (!IsPostBack)     
    {          
    }     
    ShowPro();   
  }   
   
  #region##省份下拉列表框   
  /// <summary>   
  /// 省份下拉列表框   
  /// </summary>   
  /// <returns></returns>   
  public string ShowPro()   
  {     
    StringBuilder str = new StringBuilder();    //得到所有省份集合     
    List<CasMenuModels.Province> list = new CasMenuBLL.ProvinceManager().GetAllProvince();            //添加一个初始项     
    str.Append("<option value=\"");     
    str.Append("0");     
    str.Append("\">");     
    str.Append("===请选择===");     
    str.Append("</option>");         
     
    //循环追加省份下拉项         
    foreach (CasMenuModels.Province p in list)     
    {       
      str.Append("<option value=\"");       
      str.Append(p.ProvinceId);       
      str.Append("\">");       
      str.Append(p.ProvinceName);       
      str.Append("</option>");           
    }     
    return strPro = str.ToString();   
  }   
   
  #endregion  #region##城市下拉列表框   
  /// <summary>   
  /// 城市下拉列表框   
  /// </summary>   
  /// <param name="str">省份ID</param>   
  /// <returns></returns>   
  [System.Web.Services.WebMethod()]   
  public static string ShowCity(string str)  //方法是静态的   
  {     
    StringBuilder strCi = new StringBuilder();     
    if (str == "0")   //为初始项     
    {       
      strCi.Append("<option value=\"");       
      strCi.Append("请选择");       
      strCi.Append("\">");       
      strCi.Append("请选择");       
      strCi.Append("</option>");     
    }     
    else     
    {       
      List<CasMenuModels.City> list = new CasMenuBLL.CityManager().GetAllByProId(Convert.ToInt32(str));  //根据省份ID得到城市集合       
      foreach (City c in list)       
      {         
        strCi.Append("<option value=\"");         
        strCi.Append(c.CityId);         
        strCi.Append("\">");         
        strCi.Append(c.CityName);         
        strCi.Append("</option>");               
      }     
    }     
    return strCity = strCi.ToString();   
  }   
  #endregion   
} 

要注意的地方我都有注释,

当然前台调入后台方法远不止这一种,比如还有AJAXPRO也很好用

以上所述就是本文的全部内容了,希望大家能够喜欢。

相关文章

  • jQuery Validation PlugIn的使用方法详解

    jQuery Validation PlugIn的使用方法详解

    这篇文章主要介绍了jQuery Validation PlugIn的使用方法,需要的朋友可以参考下
    2015-12-12
  • jquery如何实现点击空白处隐藏元素

    jquery如何实现点击空白处隐藏元素

    这篇文章主要介绍了jquery实现点击空白处隐藏元素div等方法和实现代码的讲解,一起学习下。
    2017-12-12
  • jQuery去掉字符串起始和结尾的空格(多种方法实现)

    jQuery去掉字符串起始和结尾的空格(多种方法实现)

    去掉字符串起始和结尾的空格在实际应用中时很常见的的功能,本教程以多种方法为大家介绍下去掉空格的方法,感兴趣的朋友可以参考下哈
    2013-04-04
  • 使用jQuery UI库开发Web界面的简单入门指引

    使用jQuery UI库开发Web界面的简单入门指引

    这篇文章主要介绍了使用jQuery UI库开发Web界面的简单入门指引,jQuery UI是一个基于jQuery的图形组件库,需要的朋友可以参考下
    2016-04-04
  • jQuery插件实现静态HTML验证码校验

    jQuery插件实现静态HTML验证码校验

    这篇文章主要介绍了jQuery插件实现静态HTML验证码校验,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2015-11-11
  • JQuery在页面中添加和除移DOM示例代码

    JQuery在页面中添加和除移DOM示例代码

    本文为大家介绍下使用JQuery实现在页面中添加和除移DOM主要使用了以下几个方法,感兴趣的朋友可以了解下哈,希望对大家有所帮助
    2013-06-06
  • jQuery实现的多滑动门,多选项卡效果代码

    jQuery实现的多滑动门,多选项卡效果代码

    这篇文章主要介绍了jQuery实现的多滑动门,多选项卡效果代码,具有tab切换与滑动门的功能,涉及鼠标事件的响应与页面元素属性动态变换操作相关实现技巧,需要的朋友可以参考下
    2016-03-03
  • jQuery 拖动层(在可视区域范围内)

    jQuery 拖动层(在可视区域范围内)

    获取层元素,在浏览器可视区域的最左、最边,最上、最下的值。并且在拖动层的过程中,把当前层的坐标值,去和这几个值,做比较,如果超过这些值。那么就不能再拖动这个方向,即把值设为最小或最大
    2012-05-05
  • jQuery框架实现元素显示及隐藏三种动画方式

    jQuery框架实现元素显示及隐藏三种动画方式

    在jQuery框架中对元素对象进行显示和隐藏有三种方式,分别是“默认方式显示和隐藏”、“滑动方式显示和隐藏”、“淡入淡出显示和隐藏”,今天就每种方式通过实例代码给大家详细讲解,需要的朋友参考下吧
    2021-06-06
  • jquery队列函数用法实例

    jquery队列函数用法实例

    这篇文章主要介绍了jquery队列函数用法,以实例形式分析了jQuery中队列的用法以及控制样式的技巧,具有一定的参考借鉴价值,需要的朋友可以参考下
    2014-12-12

最新评论