jquery.easyui使用详解,和遇到的问题,提供大家在使用的时候少走弯路(二)
2015-02-05 19:25
549 查看
上次解释了几个易犯错的地方,当然对于大神们那都是小菜一碟了,今天来说说后台请求数据,分页,返回json数据
废话不多说献上代码
上面查询数据是封装了一个类,包括查询条件和数据分页sql,当然用存储过程是最好,最快的啦,但是系统关联表太多,为了不麻烦的频繁改,就拼sql啦,为了扩展方便嘛,偷偷懒
拼接json的方法
废话不多说献上代码
private string QueryList(ArrayList arrayList) { //ArrayList ret = new ArrayList(); string order = this.Request.Form["order"]; string sort = this.Request.Form["sort"]; string rows = this.Request.Form["rows"]; string page = this.Request.Form["page"]; //page=1&rows=10&sort=UserName&order=desc int iSortIndex, iPage, iRows; string[] colums = new string[] { "moveid", "daytime", "outsite", "insite", "inputman", "handleman", "outdate", "outid", "availability", "invaliddate", "status", "preconcert", "checked", "chkdate", "fin_checked", "remark", "used", "deleted"}; //if (!int.TryParse(sidx, out iSortIndex)) //{ // iSortIndex = -1; //} iSortIndex = 1; if (!int.TryParse(page, out iPage)) { iPage = 1; } if (!int.TryParse(rows, out iRows) || iRows > 100 || iRows <= 0) { iRows = 20; } int total = 0; //传入表名 JGDataQuery gq = new JGDataQuery("move"); //传入搜索条件 if (!string.IsNullOrEmpty(Request.Form["IdOrName"])) { if (Erp.Common.Verify.IsNumber(Request.Form["IdOrName"])) { gq.AddQueryParam("moveid", Request.Form["IdOrName"]); } } DataTable dt = gq.GetListByPage(colums, iPage, iRows, 1, sort,out total); //返回json return Erp.Common.ToEasyJson.TableToJson(dt,total); }
上面查询数据是封装了一个类,包括查询条件和数据分页sql,当然用存储过程是最好,最快的啦,但是系统关联表太多,为了不麻烦的频繁改,就拼sql啦,为了扩展方便嘛,偷偷懒
public class JGDataQuery { public string TableName { get; private set; } string sqlWhere; List<SqlParameter> sqlParaList = new List<SqlParameter>(); public JGDataQuery(string tableName) { // //TODO: 在此处添加构造函数逻辑 // if (string.IsNullOrEmpty(tableName)) { throw new NullReferenceException("表名不能为空;"); } TableName = tableName; } public void AddQueryParam(string name, object paramValue) { sqlWhere += " and " + name + "=@" + name; sqlParaList.Add(new SqlParameter(name, paramValue)); } /// <summary> /// 同一列值多值 /// </summary> /// <param name="columnName"></param> /// <param name="key"></param> /// <param name="keyValue"></param> public void AddInParams(string columnName, List<string> listParams) { sqlWhere += " and " + columnName + " in ("; foreach (string item in listParams) { sqlWhere += item + ','; } if (sqlWhere.Length > 0) { sqlWhere = sqlWhere.Remove(sqlWhere.LastIndexOf(','), 1); } sqlWhere += " ) "; } public void AddLikeQueryParam(string name, object paramValue) { sqlWhere += " and " + name + " like '%@" + name + "%' "; sqlParaList.Add(new SqlParameter(name, paramValue)); } public void AddLetterThanParm(string name, object paramValue) { sqlWhere += " and " + name + "<@" + name; sqlParaList.Add(new SqlParameter(name, paramValue)); } public void AddGreaterThanParm(string name, object paramValue) { sqlWhere += " and " + name + ">@" + name; sqlParaList.Add(new SqlParameter(name, paramValue)); } public void AddNoEqualParam(string name, object paramValue) { sqlWhere += name + "<>@" + name + " and "; sqlParaList.Add(new SqlParameter(name, paramValue)); } public void AddBetweenQueryParam(string starttime, string endtime, object paramValue1, object paramValue2) { sqlWhere += " and " + starttime + " < @" + starttime; sqlWhere += " and " + endtime + "< @" + endtime; sqlParaList.Add(new SqlParameter(starttime, paramValue1)); sqlParaList.Add(new SqlParameter(endtime, paramValue2)); } /// <summary> /// Or条件查询 /// </summary> string sqlOrWhere = string.Empty; public void AddlikeOrParam(string name, object paramValue) { //sqlOrWhere += name + " like @" + name + " or "; //sqlParaList.Add(new SqlParameter(name, " '%" + paramValue + "%' ")); sqlOrWhere += name + " like '%" + paramValue + "%' or "; sqlParaList.Add(new SqlParameter(name, " '%" + paramValue + "%' ")); } /// <summary> /// 分页获取数据列表 /// </summary> /// <param name="columns">需要查询的列明数组</param> /// <param name="page">当前页</param> /// <param name="pageSize">页码</param> /// <param name="sortIndex">排序索引</param> /// <param name="sortDirction">排序升降</param> /// <returns></returns> public DataTable GetListByPage(string[] columns, int page, int pageSize, int sortIndex, string sortDirction, out int total) { StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT "); if (columns == null || columns.Length == 0) strSql.Append(" * "); else { for (int i = 0; i < columns.Length; i++) { strSql.Append(columns[i] + ","); } strSql.Remove(strSql.Length - 1, 1); } strSql.Append(" FROM ( "); strSql.Append(" SELECT ROW_NUMBER() OVER ("); if (sortIndex >= 0 && sortIndex < columns.Length - 1) { strSql.Append(" order by T." + columns[sortIndex]); if (sortDirction != null && (sortDirction == "asc" || sortDirction == "desc")) { strSql.Append(" " + sortDirction); } } strSql.Append(")AS Row, T.* from " + TableName + " T "); if (sqlParaList != null && sqlParaList.Count > 0) { strSql.Append(" where 1=1"); if (!string.IsNullOrEmpty(sqlWhere)) { strSql.Append(sqlWhere.TrimEnd(',')); } if (!string.IsNullOrEmpty(sqlOrWhere)) { strSql.Append(" and ( " + sqlOrWhere.Substring(0, sqlOrWhere.Length - 3) + " )"); } } strSql.Append(" ) TT"); strSql.AppendFormat(" WHERE TT.Row between {0} and {1}", (pageSize * (page - 1) + 1), pageSize * page); //获取列表总行数 total = GetListCount(pageSize); return SqlHelper.ExecuteDataTable(SqlHelper.SHOP_CONN_STR, CommandType.Text, strSql.ToString(), sqlParaList.ToArray()); } /// <summary> /// 获取列表总行数 /// </summary> /// <returns></returns> public int GetListCount(int pageSize) { StringBuilder strSql = new StringBuilder("select count(1)" + " from " + TableName); if (sqlParaList != null && sqlParaList.Count > 0) { strSql.Append(" where 1=1"); if (!string.IsNullOrEmpty(sqlWhere)) { strSql.Append(sqlWhere.TrimEnd(',')); } if (!string.IsNullOrEmpty(sqlOrWhere)) { strSql.Append(" and (" + sqlOrWhere.Substring(0, sqlOrWhere.Length - 3) + ")"); } } object obj = SqlHelper.ExecuteScalar(SqlHelper.SHOP_CONN_STR, CommandType.Text, strSql.ToString(), sqlParaList.ToArray()); int RowsCount = 0; if (obj != null) { return RowsCount = (int)obj; } else { return 0; } //int total = 0; // //if (RowsCount % pageSize == 0) // //{ // // total = RowsCount / pageSize; // //} // //else // //{ // // total = RowsCount / pageSize + 1; // //} // return total; }
拼接json的方法
public static string TableToJson(DataTable table,int total) { if (table == null) return ""; StringBuilder sb = new StringBuilder(); sb.Append("{"); sb.Append("\"total\":" + total + ","); sb.Append("\"rows\":["); foreach (DataRow row in table.Rows) { sb.Append("{"); foreach (DataColumn col in table.Columns) { sb.Append("\"" + col.ColumnName + "\":\"" + row[col.ColumnName] + "\","); } sb.Remove(sb.Length - 1, 1); sb.Append("},"); } sb.Remove(sb.Length - 1, 1); sb.Append("]"); sb.Append("}"); return sb.ToString(); }
相关文章推荐
- jquery.easyui代码详解,和遇到的问题,提供大家在使用的时候少走弯路(一)
- 在做动态添加删除行的时候,使用jquery遇到的问题:$("#participantList tr").eq(i).remove();
- 解决VMWARE磁盘共享的问题(原创,希望兄弟们在遇到类似问题的时候少走弯路)
- 在做Asp.Net开发的时候,经常会遇到页面乱码的问题,下面是在网上收集的相关资料,请大家参考:
- asp.net Ajax 页中使用jquery-easyui的显示问题处理
- easyui使用过程中遇到的问题
- 关于使用easyui dataGrid遇到的小bug问题
- 在使用Asp.net制作网站的时候遇到的问题(一)
- 使用mysql可视化工具mysql-front的时候遇到软件过期问题
- asp.net Ajax 页中使用jquery-easyui的显示问题处理
- 使用10.04过程中遇到了很多中文问题,都解决了,汇总下来供大家参考
- 使用session时候,遇到的一个问题(请求解决方法)
- 使用WebServices时候遇到“基础连接以关闭”的问题
- 这是在开发的时候经常会遇到的问题希望对大家有所帮助
- J2ME使用WTK模拟器开发时候遇到“OK to use Airtime” 问题的解决方法
- MYSQL使用的时候遇到的一些问题
- 使用java线程的时候遇到的小问题
- 在使用Asp.net制作网站的时候遇到的问题(一)
- 在使用JES8的时候遇到的一个问题
- 第一次在项目中使用JQuery遇到的一点问题