高校手机签到系统——第一部分Authority权限系统(下)

  很抱歉,之前寝室光纤断了,所以到现在才更新这个系列的第二篇博客。点击访问高校手机签到系统——第一部分Authority权限系统(上)

  这几天我反思了一下上一篇写博上的方式,一味的贴代码式的,是否应该更深入细致的讲解一下具体的某个方法的实现。在写博上我还是个新人,还忘多多指教。

  上一篇,我们完成了后台部分。今天我们再来讨论讨论前台。在具体到前台之前,还必须说到一层

Service层,该层主要实现前端和后台的解耦。我们小小的举例一下:

先定义接口ClassSvc封装ClassDao中对Class班级类的增删查改方法,在Impl中

完成了对该接口的具体实现,这里体现到一种设计模式思想,装饰者模式。bla,bla,bla,Dao层其他的封装类似。如何调用Service来达到解耦的目的?这里采用构造注入的方式:

 

  具体到前台:

  先看一看前台的效果:

  

好丑是吧,我确实不擅长前端的美化。左边是一个Ztree,中间有一个IdTab选项卡包着jqgrid,它们都是jquery的控件,它们怎么使用?请看下文。

ztree初始化:

Ztree是一个国产Jquery控件,官方的使用说明已经很细致了,请参考http://www.ztree.me/v3/main.php.

请求json数据,原来我是用JavaScriptSerializer序列化一个json格式的字符串,注意是字符串,也就是下面json格式的数据双引号全被转义了,如果android请求得到了这样的数据,没法解析。用var定义,最后响应的就是如下的数据。

[{"id":"8b012030-572a-4d34-8438-11ec0dd3854f","name":"直属业务部门","pId":"00000000-0000-0000-0000-000000000000","type":"机构","isParent":true},{"id":"d2305fdd-d666-4e04-8ac3-47c4de269f68","name":"教学部门","pId":"00000000-0000-0000-0000-000000000000","type":"机构","isParent":true},{"id":"9d7e2284-c3af-439c-83dc-49794ee057f0","name":"党群部门","pId":"00000000-0000-0000-0000-000000000000","type":"机构","isParent":true},{"id":"0e2a1b1e-f067-4925-87bb-61744194ca9c","name":"行政机构","pId":"00000000-0000-0000-0000-000000000000","type":"机构","isParent":true}]

jqgrid:

jQuery("#list1").jqGrid({
             rowNum: 15,
             url: '/Authority/LoadAllStuffs',
             mtype: 'POST',
             datatype: "json",
             colNames: ['PageIndex', 'UserId', 'No', 'Name', 'Gender', 'Nation', 'Address', 'PoliticalStatus', 'CellPhoneNumber'],
             colModel: [
                    { name: 'PageIndex', width: 20 },
                    { name: 'UserId', hidden: true },
   		            { name: 'No', width: 60 },
   		            { name: 'Name', width: 70 },
   		            { name: 'Gender', width: 20, formatter: function (cellvalue, options, rowObject) { if (cellvalue == 'True') { return '男'; } else if (cellvalue == 'False') { return '女'; } else { return ''; } } },
   		            { name: 'Nation', width: 70, align: "left" },
   		            { name: 'Address', width: 130, align: "left" },
   		            { name: 'PoliticalStatus', width: 50, align: "center" },
   		            { name: 'CellPhoneNumber', width: 80, sortable: false }
   	            ],
             jsonReader: {
                 root: 'dataRows', page: 'CurrentPage', total: 'PageCount', records: 'RecordCount', repeatitems: true, cell: 'cell'
             },
             sortname: 'PageIndex',
             rowList: [10, 20, 30],
             pager: '#pager1',
             viewrecords: true,
             caption: "AllStuffs",
             width: 600,
             multiselect: true
         });

 模态窗口jqmodal:

 var addBranchDialog = $('#AddBranchDialog');
                 if (nodes[0].type != "专业") {
                     $('#AddBranchDialog').jqm({ ajax: '/Authority/AddBranch?id=' + nodes[0].id, modal: true });                     
                 }
                 else {
                     $('#AddBranchDialog').jqm({ ajax: '/Authority/AddClass?id=' + nodes[0].id, modal: true });  //初始化模态窗口要异步请求的链接
                 }
                 $('#AddBranchDialog').jqmShow();
             }

 前端值得分享的也就这些了,上次说的源码问题,我想了想还是在本系列文章完成的时候开源,涉及到论文查重的问题,谨慎!!!有疑问或建议,请留言。

posted @ 2014-02-26 20:06  Scott Lewis  阅读(2071)  评论(2编辑  收藏  举报