学校上课时老师实现的省市联动都是通过服务器端控件的IsPostback属性实现的,然而我知道这在实际应用中一点用也没有,选项变一下就刷新一下页面,根本不现实,事实上网上看到的省市联动都是无刷新的.但我不知道怎样实现,没有学过ajax,也没有任何思路,学过ajax后,又想起了这个恋恋不忘的问题,于是自己思索实现了.不知道真正的企业中是怎么实现的,觉得我的方法好像有点绕,不管怎么说,功能是实现了.

我的省市数据都是基于数据库的,数据库就不上了,大体结构如下:

省市联动

我用三层实现的,当然没有一步一步写三层,毕竟只是为了实现这一个功能,没必要做那么多机械的工作,直接用codesmith生成了三层模板,所以BLL层,DAL层,实体类就不上了,那不是重点,也不影响阅读.

首先页面加载时需要去数据库查询所有的省数据,因此建立了一个用于aja的一般处理程序ProInit.ashx,代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.SessionState;
using ProAndCity.Model;
using ProAndCity.BLL;
using System.Web.Script.Serialization;

namespace ProAndCity
{
    /// <summary>
    /// ProInit 的摘要说明
    /// </summary>
    public class ProInit : IHttpHandler,IRequiresSessionState
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            //查询所有省数据(省的areapid为0)
           IEnumerable<ProAndCity.Model.AreaFull> list = new AreaFullBLL().GetAll(0);
           JavaScriptSerializer jss = new JavaScriptSerializer();
           string json = jss.Serialize(list);
           context.Response.Write(json);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}
View Code

相关文章:

  • 2021-10-09
  • 2022-12-23
  • 2021-10-05
  • 2021-07-06
  • 2021-05-20
  • 2021-09-19
猜你喜欢
  • 2021-08-16
  • 2022-02-17
  • 2022-02-01
相关资源
相似解决方案