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

学习笔记 2019/09/07 JavaScript

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

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

CasMenu.aspx页面:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="CasMenu.aspx.cs" Inherits="_Default" %> 
 
 
 
 
  Porschev--前台JS(Jquery)调用后台方法 级联菜单 
   
   
    $(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();  //移除原有项             
            });             
            $("===请选择===").appendTo("#selCity");  //添加一个默认项             
            $(eval("(" + msg + ")").d).appendTo("#selCity");    //将返回来的项添加到下拉菜单中           
          },           
          error: function(xhr, msg, e) {             
            alert("error");           
          }         
         });       
      });     
    });   
     
 
 
   
  
      Porschev--前台JS(Jquery)调用后台方法 级联菜单                    <%=strPro %>      省(直辖市)              ===请选择===      (市)    
        
       

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##省份下拉列表框   
  ///    
  /// 省份下拉列表框   
  ///    
  ///    
  public string ShowPro()   
  {     
    StringBuilder str = new StringBuilder();    //得到所有省份集合     
    List list = new CasMenuBLL.ProvinceManager().GetAllProvince();            //添加一个初始项     
    str.Append("");     
    str.Append("===请选择===");     
    str.Append("");         
     
    //循环追加省份下拉项         
    foreach (CasMenuModels.Province p in list)     
    {       
      str.Append("");       
      str.Append(p.ProvinceName);       
      str.Append("");           
    }     
    return strPro = str.ToString();   
  }   
   
  #endregion  #region##城市下拉列表框   
  ///    
  /// 城市下拉列表框   
  ///    
  /// 省份ID   
  ///    
  [System.Web.Services.WebMethod()]   
  public static string ShowCity(string str)  //方法是静态的   
  {     
    StringBuilder strCi = new StringBuilder();     
    if (str == "0")   //为初始项     
    {       
      strCi.Append("");       
      strCi.Append("请选择");       
      strCi.Append("");     
    }     
    else     
    {       
      List list = new CasMenuBLL.CityManager().GetAllByProId(Convert.ToInt32(str));  //根据省份ID得到城市集合       
      foreach (City c in list)       
      {         
        strCi.Append("");         
        strCi.Append(c.CityName);         
        strCi.Append("");               
      }     
    }     
    return strCity = strCi.ToString();   
  }   
  #endregion   
}

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

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

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

本文地址:https://www.stayed.cn/item/157

转载请注明出处。

本站部分内容来源于网络,如侵犯到您的权益,请 联系我

我的博客

人生若只如初见,何事秋风悲画扇。

我的标签

随笔档案