前端:EasyUI JQuery Ajax
后端:基于三层架构和ORM理念的开发框架
这是BLL层的代码
namespace Jyhst.Business
{
public class StudentBLL
{
private Database myDataBase;
public StudentBLL()
{
myDataBase = DB.D();
}
/// <summary>
/// 根据ID查询实体
/// </summary>
/// <param name="keyID">UnitID</param>
/// <returns></returns>
public Student GetDetail(string keyID, out string Msg)
{
Msg = string.Empty;
try
{
return DA<Student>.FetchSingleById(keyID);
}
catch (Exception ex)
{
Msg = ex.ToString();
return null;
}
}
public bool Delete(string keyID, out string Msg)
{
Msg = string.Empty;
int res = -1;
myDataBase.BeginTransaction();
try
{
string sqlStrInfo = "WHERE Student.StudentID='" + keyID + "'";
string sqlStrItem = "WHERE Student.StudentID='" + keyID + "'";
List<Student> list = myDataBase.Fetch<Student>(sqlStrInfo, null);
if (list.Count == 1)
{
List<Student> listItem = myDataBase.Fetch<Student>(sqlStrItem, null);
foreach (Student item in listItem)
{
res = -1;
res = myDataBase.Delete(item);
}
res = -1;
res = myDataBase.Delete(list[0]);
}
else
{
Msg = "学生不存在,无法删除";
myDataBase.AbortTransaction();
return false;
}
myDataBase.CompleteTransaction();
return true;
}
catch (Exception ex)
{
Msg = ex.ToString();
myDataBase.AbortTransaction();
return false;
}
}
/// <summary>
/// 分页查询
/// </summary>
/// <param name="pageIndex">页码</param>
/// <param name="pageSize">每页记录数</param>
/// <param name="whereSql">查询条件</param>
/// <param name="total">总记录数</param>
/// <returns></returns>
public List<Student> PagedQuery(long pageIndex, long pageSize, Sql whereSql, out long total, out string Msg)
{
Msg = string.Empty;
Sql sql = new Sql();
sql.Append(@";Select Student.* From Student");
sql.Append(whereSql);
sql.OrderBy(" Student.StudentNum Desc");
try
{
return DA<Student>.PagedQuery(pageIndex, pageSize, sql, out total);
}
catch (Exception ex)
{
Msg = ex.ToString();
total = -1;
return null;
}
}
/// <summary>
/// 获取所有的学生信息
/// </summary>
/// <returns></returns>
public List<Student> QueryAll(out string Msg)
{
Msg = string.Empty;
var sql = Sql.Builder.Append("WHERE 1=1 ");
try
{
return DA<Student>.Fetch(sql);
}
catch (Exception ex)
{
Msg = ex.ToString();
return null;
}
}
/// <summary>
/// 获取所有学生信息
/// </summary>
/// <param name="whereSql">查询SQL条件</param>
/// <param name="Msg">反馈信息</param>
/// <param name="paras">查询参数</param>
/// <returns></returns>
public DataSet QueryALL(string whereSql, out string Msg, params object[] paras)
{
DataSet ds = new DataSet();
Msg = string.Empty;
Sql sql = new Sql();
sql.Append(@";Select Student.* From Student");
sql.Append(whereSql);
sql.OrderBy(" Student.StudentNum Desc");
try
{
myDataBase.Fill(ds, sql.SQL, paras);
return ds;
}
catch (Exception ex)
{
Msg = ex.ToString();
return null;
}
}
/// <summary>
/// 保存
/// </summary>
/// <param name="mdl">Student</param>
/// <param name="Msg"></param>
/// <returns></returns>
public bool Save(Student mdl, out string Msg)
{
Msg = string.Empty;
try
{
Sql s = new Sql();
s.Append(@";Select * from Student Where StudentNum='" + mdl.StudentNum + "' And StudentID<>'" + mdl.StudentID + "'");
Student student = DA<Student>.FetchSingle(s);
if (student != null)
{
return false;
}
else
{
return DA<Student>.Save(mdl, mdl.StudentID);
}
}
catch (Exception ex)
{
Msg = ex.ToString();
return false;
}
}
}
}
这是model的代码
namespace Jyhst.Model
{
[TableName("Student")]
[PrimaryKey("StudentID", autoIncrement = false)]
[ExplicitColumns]
public partial class Student
{
[Column]
public string StudentID
{
get
{
return _StudentID;
}
set
{
_StudentID = value;
}
}
string _StudentID;
[Column]
public string StudentNum
{
get
{
return _StudentNum;
}
set
{
_StudentNum = value;
}
}
string _StudentNum;
[Column]
public string StudentName
{
get
{
return _StudentName;
}
set
{
_StudentName = value;
}
}
string _StudentName;
[Column]
public int? StudentSex
{
get
{
return _StudentSex;
}
set
{
_StudentSex = value;
}
}
int? _StudentSex;
[ResultColumn]
public string Sex
{
get
{
switch (_StudentSex)
{
case 0:return "男";
case 1:return "女";
default:return "未知";
}
}
}
[Column]
public string StudentAddress
{
get
{
return _StudentAddress;
}
set
{
_StudentAddress = value;
}
}
string _StudentAddress;
}
}
这是界面层的代码
namespace Jyhst.App.Web.CS.UI
{
public partial class CSStudentList : PageBase
{
StudentBLL studentBLL = new StudentBLL();
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
AuthenticationPage.IsLocalSystem = true;
var action = Request["action"];
if (!string.IsNullOrEmpty(action))
ProRequest(action.ToInt());
}
}
protected void ProRequest(int action)
{
Response.Buffer = true; //输出页面是否被缓冲
Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1); //去掉当前操作前一秒的时间系统的缓存
Response.Expires = 0; //不缓存页面
Response.CacheControl = "no-cache";
Response.AddHeader("Pragma", "No-Cache");
switch (action)
{
case 1://查询
Response.Write(QueryData());
Response.End();
break;
case 2://删除
Response.Write(Delete());
Response.End();
break;
}
}
//查询
private string QueryData()
{
var pageIndex = Context.Request["page"].ToLong();
var pageSize = Context.Request["rows"].ToLong();
var Msg = string.Empty;
long total = 0;
var sql = Sql.Builder;
//查询条件
//获取学生学号
var StudentNum = Request["StudentNum"];
//获取学生姓名
var StudentName = Request["StudentName"];
if (!string.IsNullOrEmpty(StudentNum))
{
sql.Append("Where Student.StudentNum like '%" + StudentNum + "%'");
}
if (!string.IsNullOrEmpty(StudentName))
{
sql.Append("Where Student.StudentName like '%" + StudentName + "%'");
}
var list = studentBLL.PagedQuery(pageIndex, pageSize, sql, out total, out Msg);
var json = ConvertJson<Student>.ListToJson(list);
var s = "{\"total\":" + total + ",\"rows\":" + json + "}";
return s;
}
//删除
private string Delete()
{
var StudentID = Request["id"];
string Msg = string.Empty;
var isOK = studentBLL.Delete(StudentID, out Msg);
return isOK ? "1" : "0";
}
}
}
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="CSStudentList.aspx.cs" Inherits="Jyhst.App.Web.CS.UI.CSStudentList" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title></title>
<script type="text/javascript">
$(function () {
$('#tblData').datagrid({
title: '学生信息',
noheader: true,
loadMsg: "正在接收数据...",
iconCls: 'icon-reload',
striped: true,
height: document.documentElement.clientHeight - 5,
url: '',
idField: 'StudentID',
columns: [[
{ field: 'StudentID', checkbox: true },
{ field: 'StudentNum', title: '学生编号', width: 200 },
{ field: 'StudentName', title: '学生姓名', width: 200 },
{ field: 'Sex', title: '性别', width: 200 },
{ field: 'StudentAddress', title: '住址', width: 200 },
]],
singleSelect: true,
rownumbers: true,
pagination: true,
toolbar: '#toolbar'
});
$(window).resize(function () {
$('#tblData').datagrid('resize');
});
})
/**
* 定义新增事件
*/
function AddNew() {
return OpenWindow("学生信息维护", "/CS/UI/CSStudentEdit.aspx?id=", 700, 350,
function () { $('#tblData').datagrid("reload"); })
}
/**
* 定义查看事件
*/
function View() {
var id = GetDataGridSelectedRow('tblData', 'StudentID');
if (id == "") {
Alert("请选择后再查看!");
return false;
}
return OpenWindow("学生信息查看", "/CS/UI/CSStudentEdit.aspx?id=" + id + "&IsView=T", 700, 350,
function () { $('#tblData').datagrid("reload"); })
}
/**
* 定义修改事件
*/
function Update() {
//var row = $('#tblData').datagrid('getSelected');
var id = GetDataGridSelectedRow('tblData', 'StudentID');
if (id == "") {
Alert("请选择后再修改!");
return false;
}
return OpenWindow("学生信息维护", "/CS/UI/CSStudentEdit.aspx?id=" + id, 700, 280,
function () { $('#tblData').datagrid("reload"); })
}
/**
* 定义查询事件
*/
function Search() {
var StudentNum = $("#txtStudentNum").val();//学号
var StudentName = $("#txtStudentName").val();//姓名
$("#tblData").datagrid({
url: 'CSStudentList.aspx?action=1&rnd=' + GetRand(),
queryParams: { StudentNum: StudentNum, StudentName: StudentName }
});
}
/**
* 定义删除事件
*/
function Delete() {
//var row = $('#tblData').datagrid('getSelected');
var id = GetDataGridSelectedRow('tblData', 'StudentID');
if (id == "") {
Alert("请选择后再删除!");
return false;
}
Confirm("确定要删除吗?", function () {
var url = "CSStudentList.aspx?action=2&id=" + id + "&d=" + new Date().toString();
DataService.AjaxGet(url, function (data) {
if (data == "0")
Notice("删除失败!");
if (data == "1") {
Notice("删除成功!");
$("#tblData").datagrid("reload");
}
});
});
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div id="toolbar">
<table class="tblEdit" border="0">
<tr>
<td class="datalabel">学生学号:</td>
<td>
<asp:TextBox ID="txtStudentNum" runat="server" ClientIDMode="Static"></asp:TextBox>
</td>
<td class="datalabel">学生姓名:</td>
<td>
<asp:TextBox ID="txtStudentName" runat="server" ClientIDMode="Static"></asp:TextBox>
</td>
</tr>
<tr>
<td></td>
<td colspan="3">
<uc1:LoadButton runat="server" ID="LoadButton1" />
</td>
</tr>
</table>
</div>
<div class="tblTop2">
<table id="tblData">
</table>
</div>
</form>
</body>
</html>
仅供参考,谢谢