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


Posted in Javascript onMay 21, 2015

前台用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也很好用

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

Javascript 相关文章推荐
使javascript也能包含文件
Oct 26 Javascript
JavaScript 未结束的字符串常量常见解决方法
Jan 24 Javascript
javascript cookies 设置、读取、删除实例代码
Apr 12 Javascript
图片延迟加载的实现代码(模仿懒惰)
Mar 29 Javascript
JavaScript中的object转换成number或string规则介绍
Dec 31 Javascript
JQuery使用$.ajax和checkbox实现下次不在通知功能
Apr 16 Javascript
js控制元素显示在屏幕固定位置及监听屏幕高度变化的方法
Aug 11 Javascript
jquery基础知识第一讲之认识jquery
Mar 17 Javascript
jQuery Easyui 下拉树组件combotree
Dec 16 Javascript
jQuery实现标签页效果实战(4)
Feb 08 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
layui.tree组件的使用以及搜索节点功能的实现
Sep 26 Javascript
jQuery插件expander实现图片翻转特效
May 21 #Javascript
简单分析javascript面向对象与原型
May 21 #Javascript
jQuery获取上传文件的名称的正则表达式
May 21 #Javascript
js兼容火狐获取图片宽和高的方法
May 21 #Javascript
js兼容火狐显示上传图片预览效果的方法
May 21 #Javascript
javascript去除空格方法小结
May 21 #Javascript
删除javascript所创建子节点的方法
May 21 #Javascript
You might like
PHP长连接实现与使用方法详解
2018/02/11 PHP
js中的eventType事件及其浏览器支持性介绍
2013/11/29 Javascript
JavaScript数组常用方法
2015/03/02 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
javascript通过获取html标签属性class实现多选项卡的方法
2015/07/27 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
基于JavaScript中字符串的match与replace方法(详解)
2017/12/04 Javascript
vue单页应用在页面刷新时保留状态数据的方法
2018/09/21 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
JavaScript 九种跨域方式实现原理
2019/02/11 Javascript
vue+element实现打印页面功能
2019/05/20 Javascript
[00:12]DAC SOLO赛卫冕冠军 VG.Paparazi灬展现SOLO技巧
2018/04/06 DOTA
跟老齐学Python之再深点,更懂list
2014/09/20 Python
Python中线程编程之threading模块的使用详解
2015/06/23 Python
Python中的getopt函数使用详解
2015/07/28 Python
Python使用QRCode模块生成二维码实例详解
2017/06/14 Python
python实现校园网自动登录的示例讲解
2018/04/22 Python
Python开发网站目录扫描器的实现
2019/02/21 Python
Python实现发票自动校核微信机器人的方法
2020/05/22 Python
python 代码实现k-means聚类分析的思路(不使用现成聚类库)
2020/06/01 Python
python 指定源路径来解决import问题的操作
2021/03/04 Python
Shein英国:女性时尚网上商店
2019/04/10 全球购物
阿联酋彩妆品牌:OUD MILANO
2019/10/06 全球购物
俄罗斯女装店:12storeez
2019/10/25 全球购物
Farfetch巴西官网:奢侈品牌时尚购物平台
2020/10/19 全球购物
新锐科技Java程序员面试题
2016/07/25 面试题
大型活动策划方案
2014/01/12 职场文书
生育关怀行动实施方案
2014/03/26 职场文书
党的群众路线教育实践活动剖析材料
2014/09/30 职场文书
扶贫办主任查摆“四风”问题个人对照检查材料思想汇报
2014/10/02 职场文书
感恩母亲节活动总结
2015/02/10 职场文书
2015年团支部工作总结
2015/04/03 职场文书
百万英镑观后感
2015/06/09 职场文书
导游词之山东红叶谷
2019/10/31 职场文书
Nginx优化服务之网页压缩的实现方法
2021/03/31 Servers
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL