什么事都耐不住“磨”?!
比如一个让人很头疼的问题,对于项目中所用到的EasyUI框架就是一个很明显的感受。项目使用的EasyUI框架,自身封装好的样式使得开发者不用考虑具体的div和css样式了,但是却折腾的接手项目不久的我们。那谁说的,生命不息,折腾不止,今天也来折腾一下EasyUI的简单操作——对EasyUI的增删改查。
业务分析:
1、页面加载的时候,从数据库对应的表或视图中检索对应的记录显示在页面上面;
2、设置时间或者通过不通过条件,可以根据设置的条件显示具体的数据
3、单击认证,将审阅状态和是否认证都修改成Yes,取消认证则将两者修改成No;
功能实现:
查询操作:
Html代码:<%--表格显示区--%>
用户名 | 日志标题 | 时间 | 审阅状态 | 通知 | 是否认证 |
---|
这里都是EasyUI封装好的数据显示区和检索功能区。注意事项: 1、table中的 url:'ExamineVerifyLog.ashx/ProcessRequest', 是要引用的一般处理程序
2、pageSize:5,pageList:[5,10,15,20] 是设置每页显示的数量
3、"field:'要绑定的数据 '用来绑定自己数据库对应的字段,其中的样式居中等可以自行设置。
4、查询传递参数,应该和工具栏区的控件ID名称 保持一致。
一般处理程序:
//声明B层类 userLogBLL userlog = new userLogBLL(); public void ProcessRequest(HttpContext context) { string command = context.Request.QueryString["test"]; if (command == null) { Query(context); } if (command == "modify") { Modify(context); } else { Query(context); } } //查询显示该页面下面的信息 public void Query(HttpContext context) { context.Response.ContentType = "text/plain"; //=============================================================== //获取查询条件:【用户id,开始时间,结束时间,关键字】 string category, startTime, endTime; category = startTime = endTime = ""; if (null != context.Request.QueryString["Category"]) { category = context.Request.QueryString["Category"].ToString().Trim(); } if (null != context.Request.QueryString["StartTime"]) { startTime = context.Request.QueryString["StartTime"].ToString().Trim(); } if (null != context.Request.QueryString["EndTime"]) { endTime = context.Request.QueryString["EndTime"].ToString().Trim(); } //================================================================ //获取分页和排序信息:页大小,页码,排序方式,排序字段 int pageRows, page; pageRows = 10; page = 1; string order, sort, oderby; order = sort = oderby = ""; if (null != context.Request.QueryString["rows"]) { pageRows = int.Parse(context.Request.QueryString["rows"].ToString().Trim()); } if (null != context.Request.QueryString["page"]) { page = int.Parse(context.Request.QueryString["page"].ToString().Trim()); } if (null != context.Request.QueryString["sort"]) { order = context.Request.QueryString["sort"].ToString().Trim(); } if (null != context.Request.QueryString["order"]) { sort = context.Request.QueryString["order"].ToString().Trim(); } //=================================================================== //组合查询语句:条件+排序 StringBuilder strWhere = new StringBuilder(); if (category != "") { strWhere.AppendFormat(" ExamineSign= '{0}' and ", category); } if (startTime != "") { strWhere.AppendFormat(" PublishDate >= '{0}' and ", startTime); } if (endTime != "") { strWhere.AppendFormat(" PublishDate <= '{0}' and ", endTime); } //删除多余的and int startindex = strWhere.ToString().LastIndexOf("and");//获取最后一个and的位置 if (startindex >= 0) { strWhere.Remove(startindex, 3);//删除多余的and关键字 } if (sort != "" && order != "") { //strWhere.AppendFormat(" order by {0} {1}", sort, order);//添加排序 oderby = order + " " + sort; } //DataSet ds = Bnotice.GetList(strWhere.ToString()); //调用不分页的getlist //调用分页的GetList方法 DataSet ds = userlog.GetListByPage(strWhere.ToString(), oderby, (page - 1) * pageRows + 1, page * pageRows); int count = userlog.GetRecordCount(strWhere.ToString()); string strJson = ToJson.Dataset2Json(ds, count); context.Response.Write(strJson); context.Response.End(); }
修改更新认证:
Html代码://修改管理员 function modify(flag) { $('#fm').form('clear'); var row = $('#tt').datagrid('getSelected');//获取选中行 //定义更新所需要的参数,也就是数据库对应的字段,从页面表格中获取即可。 var userid = row.UserID; var content = row.Content; var examinemessage = row.ExamineMessage; var publishdate = row.PublishDate; var realname = row.RealName; var title = row.Title; var userlogid = row.UserLogID; var examineSign=flag; var xmlHttp = null; //创建Ajax核心对象.表示当前浏览器不是ie if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } else if (window.ActiveXObject) {//IE浏览器 xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); } var url = "ExamineVerifyLog.ashx?test=modify&UserID=" + userid + "&Content=" + content + "&ExamineSign=" + examineSign + "&ExamineMessage=" + examinemessage + "&PublishDate=" + publishdate + "&RealName=" + realname + "&Title=" + title + "&UserLogID=" + userlogid; //设置请求方式为GET,url,异步提交 xmlHttp.open("GET", url, true); xmlHttp.onreadystatechange = function () { //alert(xmlHttp.readyState); //判断是否执行完毕 if (4 == xmlHttp.readyState) { //若执行成功 if (200 == xmlHttp.status) { //调用reload $('#tt').datagrid('reload'); } else { alert("请求失败!错误代码:" + xmlHttp.status); } } }; //开启异步请求 xmlHttp.send(null); }
一般处理程序代码:
/// /// 修改记录 /// /// public void Modify(HttpContext context) { //声明实体类 Entity.userLogEntity entityuserlog = new Entity.userLogEntity(); entityuserlog.UserID = context.Server.UrlDecode(context.Request.QueryString["UserID"]); entityuserlog.Content = context.Server.UrlDecode(context.Request.QueryString["Content"]); entityuserlog.ExamineMessage = context.Server.UrlDecode(context.Request.QueryString["ExamineMessage"]); entityuserlog.PublishDate = context.Server.UrlDecode(context.Request.QueryString["PublishDate"]); entityuserlog.Title = context.Server.UrlDecode(context.Request.QueryString["Title"]); entityuserlog.UserLogID = context.Server.UrlDecode(context.Request.QueryString["UserLogID"]); entityuserlog.ExamineSign = context.Server.UrlDecode(context.Request.QueryString["ExamineSign"]); try { if (userlog.Update(entityuserlog))//判断是否更新成功 { context.Response.Write("T"); } else { context.Response.Write("F"); } } catch (Exception ex) { } }
当然,这里没有写出D层的方法,D层都是动软代码生成的,不是我们自己写的,生成好之后,直接调用东软代码生成的方法~~~
自己的感觉:
对于EasyUI,我的感觉就是:各种封装好的框架,要实现相应的功能,调用其封装好的方法即可。但是这句话说起来简单,真正的做到,却是让人那个什么隐隐生疼的赶脚~~~这里还是多亏了成龙师哥的帮助,^_~......
补充一句闲话:说话是一回事,交流是另一回事!