博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jquery easyui+ashx+三层框架实现增删改查
阅读量:4324 次
发布时间:2019-06-06

本文共 11447 字,大约阅读时间需要 38 分钟。

     文章结尾有demo的源码

       先说一下背景, 最近在学校做一个比赛作品,是一个电子挂号系统。因为自己没有接触过医院方面的项目,没有到大医院看过病,也没有亲身体验过网上预约挂号系统的流程。现在对需求还是有很多不明白的地方。需要向大侠请教,如果有哪位园友做过类似的系统,还请加我qq1143314007(请备注 博客园 谢谢)和我交流。因为一些业务不是很清楚,所有数据库设计的还没有设计完整。由于时间紧迫,只能先做一些基础数据的更新了。在这个期间我们做了科室管理的增删改查。因为第一次使用jquery easyui也遇到了不少问题。

先看看这个项目的组织结构吧。

相信有些经验的人看到这个组织架构就知道,是一个基本的三层架构,然后在数据库访问层使用了一个抽象工厂模式来调用DAL。简单的介绍一个这个架构。

FrameWork:包括数据库访问接口,数据访问库,公共代码类,数据访问工厂等基础库

Register.Model:实体库

Register.DBUtility:通用数据库操作类
Register.IDAL:数据库增删改查接口
Register.DALFactory:数据库访问程序集访问工厂类
Register.DAL:数据库增删改查相关操作
Register.Command:公共访问类,比如密码加密解密,邮件发送等基础类
Register.BLL:实现相关业务逻辑库。

Reference:包括使用的第三方的库。

Solution Items:关于项目的说明文件,项目分工,项目进度等文档资料的说明

Test:项目单元测试的代码

WebApplication:系统项目及系统服务.

基本的项目结构就介绍这些,本文主要介绍jquery easyui和ashx以及三层架构的一个整合,下面来介绍主要代码(后面我会附上全部代码以及数据库

ashx文件的代码:

View Code
1 using System;  2 using System.Collections.Generic;  3 using System.Linq;  4 using System.Web;  5 using Register.BLL;  6 using Register.Model;  7 using System.Web.Script.Serialization;  8 using RegisterWeb.Manager.SystemUserManager.ashx;  9 using System.Text; 10  11 namespace RegisterWeb.Manager.HospitalManager.ashx 12 { 13     ///  14     /// DepartmentsManagerService 的摘要说明 15     ///  16     public class DepartmentsManagerService : IHttpHandler 17     { 18  19         public void ProcessRequest(HttpContext context) 20         { 21             context.Response.ContentType = "text/plain"; 22             //context.Response.Write("Hello World"); 23             String action = context.Request["action"]; 24  25             //获取科室的全部列表 26             if (action.Equals("list")) 27             { 28                 DepartmentListJSON departmentListJSON = new DepartmentListJSON(); 29              30  31                 departmentListJSON.rows = new List
(); 32 33 int row = int.Parse(context.Request["rows"].ToString()); 34 int page = int.Parse(context.Request["page"].ToString()); 35 36 List
list = DepartmentsBLL.GetPagedDepartmentsInfo(row, page, " Departments_State='1' "); 37 departmentListJSON.total = DepartmentsBLL.GetDepartmentsCount(" Departments_State='1' "); 38 39 foreach (DepartmentsInfo de in list) 40 { 41 string status; 42 if (de.Departments_State.ToString().Equals("1")) 43 { 44 status = "有效"; 45 } 46 else 47 status = "无效"; 48 departmentListJSON.rows.Add(new DepartmentJSON(de.Departments_ID, (HospitalInfoBLL.GetHospitalInfoByID(de.Hospital_ID)).Hospital_Name, de.Departments_Name, de.Departments_Introduce, de.Departments_AddTime.ToString(), de.Departments_Recoder, status,de.Hospital_ID)); 49 } 50 51 JavaScriptSerializer jss = new JavaScriptSerializer(); 52 context.Response.Write(jss.Serialize(departmentListJSON)); 53 } 54 //添加科室 55 else if (action.Equals("add")) 56 { 57 String DepartmentName = context.Request["textDepartmentName"]; 58 String DepartmentDes = context.Request["textDepartmentDes"]; 59 String selectHosptial = context.Request["selectHosptial"]; 60 DepartmentsInfo info = new DepartmentsInfo(); 61 info.Departments_ID = DataIDHelper.GetDataID("Departments_ID"); 62 info.Departments_Introduce = DepartmentDes; 63 info.Departments_Name = DepartmentName; 64 info.Departments_LastAmendPerson = "admin"; 65 info.Departments_Recoder = "admin"; 66 info.Departments_LastAmendTime = DateTime.Now; 67 info.Departments_AddTime = DateTime.Now; 68 info.Hospital_ID = selectHosptial; 69 info.Departments_State="1"; 70 71 if (DepartmentsBLL.AddDepartments(info)) 72 { 73 message msg = new message(true,"该科室添加成功!"); 74 JavaScriptSerializer jss = new JavaScriptSerializer(); 75 context.Response.Write(jss.Serialize(msg)); 76 } 77 else 78 { 79 message msg = new message(false, "该科室添加失败!"); 80 JavaScriptSerializer jss = new JavaScriptSerializer(); 81 context.Response.Write(jss.Serialize(msg)); 82 } 83 84 } 85 //删除科室 86 else if (action.Equals("delete")) 87 { 88 String id = context.Request["id"]; 89 DepartmentsInfo info = new DepartmentsInfo(); 90 info.Departments_ID=id; 91 if (DepartmentsBLL.DeleteDepartments(info)) 92 { 93 context.Response.Write("ok"); 94 } 95 else 96 { 97 context.Response.Write("no"); 98 } 99 }100 //编辑科室101 else if (action.Equals("edit"))102 {103 String DepartmentName = context.Request["textDepartmentName"];104 String DepartmentDes = context.Request["textDepartmentDes"];105 String selectHosptial = context.Request["selectHosptial"];106 String id = context.Request["id"];107 DepartmentsInfo info = new DepartmentsInfo();108 info.Departments_ID = id;109 info.Departments_Name = DepartmentName;110 info.Departments_Introduce = DepartmentDes;111 info.Hospital_ID = selectHosptial;112 info.Departments_LastAmendPerson = "admin";113 info.Departments_LastAmendTime = DateTime.Now;114 if (DepartmentsBLL.UpdateDepartments(info))115 {116 message msg = new message(true, "该科室更新成功!");117 JavaScriptSerializer jss = new JavaScriptSerializer();118 context.Response.Write(jss.Serialize(msg));119 }120 else121 {122 message msg = new message(false, "该科室更新失败!");123 JavaScriptSerializer jss = new JavaScriptSerializer();124 context.Response.Write(jss.Serialize(msg));125 }126 }127 //查询科室128 else if (action.Equals("search"))129 {130 string hospName = context.Request["hospName"];131 string depName = context.Request["depName"];132 DepartmentListJSON departmentListJSON = new DepartmentListJSON();133 departmentListJSON.rows = new List
();134 135 int row = int.Parse(context.Request["rows"].ToString());136 int page = int.Parse(context.Request["page"].ToString());137 138 StringBuilder strBuilder = new StringBuilder();139 strBuilder.Append(" Departments_State='1' ");140 if (!String.IsNullOrEmpty(depName))141 {142 strBuilder.Append(" and Departments_Name=").Append(depName).Append(" ");143 }144 if (!String.IsNullOrEmpty(hospName))145 {146 strBuilder.Append(" and Hospital_ID='").Append(hospName).Append("' ");147 }148 149 List
list = DepartmentsBLL.GetPagedDepartmentsInfo(row, page, strBuilder.ToString());150 departmentListJSON.total = DepartmentsBLL.GetDepartmentsCount(strBuilder.ToString());151 152 foreach (DepartmentsInfo de in list)153 {154 string status;155 if (de.Departments_State.ToString().Equals("1"))156 {157 status = "有效";158 }159 else160 status = "无效";161 departmentListJSON.rows.Add(new DepartmentJSON(de.Departments_ID, (HospitalInfoBLL.GetHospitalInfoByID(de.Hospital_ID)).Hospital_Name, de.Departments_Name, de.Departments_Introduce, de.Departments_AddTime.ToString(), de.Departments_Recoder, status, de.Hospital_ID));162 }163 164 JavaScriptSerializer jss = new JavaScriptSerializer();165 context.Response.Write(jss.Serialize(departmentListJSON));166 }167 168 169 }170 171 public bool IsReusable172 {173 get174 {175 return false;176 }177 }178 }179 180 class DepartmentListJSON181 {182 public int total { get; set; }183 public List
rows { get; set; }184 }185 186 class DepartmentJSON187 {188 public string ID { get; set; }189 public string Hospital { get; set; }190 public string Name { get; set; }191 public string Introduce { get; set; }192 public string AddTime { get; set; }193 public string Recoder { get; set; }194 public string State { get; set; }195 public string HosptialID { get; set; }196 197 public DepartmentJSON(string ID, string Hospital, string Name, string Introduce, string AddTime, string Recoder, string State, string HospitalID)198 {199 this.ID = ID;200 this.Hospital = Hospital;201 this.Name = Name;202 this.Introduce = Introduce;203 this.AddTime = AddTime;204 this.Recoder = Recoder;205 this.State = State;206 this.HosptialID = HospitalID;207 }208 209 }210 211 }

在ashx文件中,不同的action对应一个前台的增删改查操作。然后执行相应的方法返回json串或者文本信息。

在看一下前台页面的核心jquery ui代码

View Code
1 132 133 
134 135
137 138
139
140
142
152
153
154
155
156
157 158
159
查询160
161 162
163 164
170
171
172
173
174
175
176
177
178
179
180
科室名 所属单位 科室介绍 添加时间 记录人 状态
181 182
187 188 189
190
191
192
保存193
关闭194
195 196
197
198
199
保存200
关闭201
202 203

jquery easyui 的具体函数使用方法参考 

下面看一下最后的效果:

  这是源码

关于源代码ashx中出现较多的if else的问题,可以参考http://www.cnblogs.com/wzcheng/archive/2010/05/20/1739810.html 解决

转载于:https://www.cnblogs.com/JerryWang1991/archive/2012/06/29/2570492.html

你可能感兴趣的文章
PHP Curl发送数据
查看>>
HTTP协议
查看>>
CentOS7 重置root密码
查看>>
Centos安装Python3
查看>>
PHP批量插入
查看>>
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
Laravel 的生命周期
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
最短路径(SP)问题相关算法与模板
查看>>