asp.net+mvc+easyui+sqlite 简单用户系统学习之旅(二)—— easyui的简单实用

下面开始在UserManager.Web中利用easyUI构建web。

1. 先删除自带的controllers、models和views(里面的shared和web.config可以保存)下面的文件

 

2. 要利用easyUI,首先去网上下载jquery-easyui-1.3.2.zip,同时下载一份EasyUI-1.3.2.CHM帮助文档,方便查阅。

这里给出下载链接分享:

链接: http://pan.baidu.com/s/1c2xAGKS 密码: pkd6

解压后的easyui是这样的

3. 下面在Controllers右击添加新的控制器-HomeController.cs

这一部分可以先看前面提到的极客学院中讲解MVC的视频,简单了解一下。

4. 在Views视图下创建HomeController.cs对应的视图,Views先添加新建文件夹,命名为Home

再在Home下新建视图

命名为Index,不选择母版,添加。

这时web项目已经新增了HomeController.cs和Index.aspx两个文件,前者用来写后台判断逻辑,后者则用来表示页面。所以打开Home-Index,我们刚刚下载的easyUI也是在这里运用。

忘了介绍,easyUI是一款简单,功能强大的js框架,在jQuery基础上发展而来的。

http://www.jeasyui.com/index.php

这里是它的官方网址,里面有很多demo和教程可以学习观看和利用。

5. 把下载的easyUI解压后添加到添加到Web-Content下面,我们可以复制部分要用到的文件即可。先在Content下面新建Easyui文件夹(和Views新建Home操作一样,重复的地方就不图示了)。

把jquery-easyui-1.3.2目录下的jquery-1.8.0.min.js和jquery.easyui.min.js直接复制(快捷键Ctrl+C)复制到Content-Easyui下(快捷键Ctrl+V),同样,复制locale下的easyui-lang-zh_CN.js和整个themes文件夹。

6. 添加js库到(home)Index中。(因为项目Views中可能包含多个Index.aspx,这里前面括号加上前缀表示属于哪个视图的index页面)

按照顺序添加jquery-1.8.0.min.js、jquery.easyui.min.js、easyui-lang-zh_CN.js!

然后为(home)Index添加easyui/themes/default/easyui.css和themes/icon.css的样式。

7. 使用easyui中的layout样式添加到(home)Index中。

可以先查看下载的jquery-easyui-1.3.2/demo/layout中的demo样例,或者直接打开EasyUI-1.3.2.CHM(注意:把chm放在easyui文件夹下面,否则打开不能完整显示图片),查阅layout的使用。

<body class="easyui-layout"><div data-options="region:'north',border:false" style="height:61px;background:#0660bb;"><img src="/Content/Images/logo.png"/></div><div data-options="region:'west',split:true,title:'菜单栏'" style="width:250px;padding:10px;">west content</div><div data-options="region:'south',border:false" style="height:20px;background:#ccc;padding:1px">当前登录人:JennyJiang</div><div data-options="region:'center',title:'主面板'" style="padding:10px">hello world!</div></body>

  将(home)Index中的<body>替换为上面的代码,显示layout:

layout按照上左右下中(north-west-east-south-center)的顺序,在使用easyui的layout时,必须将body设置class=“easyui-layout”,否则就没有用到,easyui的样式通过data-options来调整。其中,center是必须添加的,其他面板可以删除不显示。layout的data-options请查阅chm帮助文档学习。

8. 使用easyui的tree,设置菜单栏

使用帮助文档中的第二种格式,定义id为tt的ul,将tree的内容以json的格式传递,定义在MessController.cs中。

(home)Index中的body如下:

<body class="easyui-layout"><div data-options="region:'north',border:false" style="height:61px;background:#0660bb;"><img src="/Content/Images/logo.png"/></div><div data-options="region:'west',split:true,title:'菜单栏'" style="width:250px;padding:10px;"><ul id="tt"></ul></div><div data-options="region:'south',border:false" style="height:20px;background:#ccc;padding:1px">当前登录人:JennyJiang</div><div data-options="region:'center',title:'主面板'" style="padding:10px">hello world!</div><script type="text/javascript">$('#tt').tree({url: '/Mess/HomeMenu'});  </script></body>

在Controllers中新建控制器,MessController.cs,代码如下:其中定义了tree中显示的内容,即一个json的字符串返回

namespace UserManager.Web.Controllers
{public class MessController : Controller{//// GET: /Json/public ActionResult HomeMenu(){string json = string.Empty;json = @"[{""id"":1,""text"":""用户列表"",""children"":[{""id"":11,""text"":""普通用户"",""state"":""closed"",""children"":[{""id"":111,""text"":""用户添加""},{""id"":112,""text"":""用户功能""}]},{""id"":12,""text"":""超级用户"",""state"":""closed"",""children"":[{""id"":121,""text"":""用户添加""},{""id"":122,""text"":""用户功能""}]},{""id"":13,""text"":""index.html""},{""id"":14,""text"":""about.html""},{""id"":15,""text"":""welcome.html""}]}]";return Content(json);}}
}

显示页面如下:

9. 使用easyui的tab,点击左边菜单栏的添加用户,可以在右边主面板中显示

(home)Index中的body如下

<body class="easyui-layout"><div data-options="region:'north',border:false" style="height:61px;background:#0660bb;"><img src="/Content/Images/logo.png"/></div><div data-options="region:'west',split:true,title:'菜单栏'" style="width:250px;padding:10px;"><ul id="tt"></ul></div><div data-options="region:'south',border:false" style="height:20px;background:#ccc;padding:1px">当前登录人:JennyJiang</div><div data-options="region:'center',title:'主面板'" style="padding:10px"><div id="tabs" class="easyui-tabs" data-options="fit:true">  <div title="home" style="padding:20px;display:none;">  hello world!</div>   </div></div><script type="text/javascript">$('#tt').tree({url: '/Mess/HomeMenu'});$('#tt').tree({onClick: function (node) {//alert(node.text);  // alert node text property when clicked// add a new tab panel   
                $('#tabs').tabs('add', {title: node.text,content: 'Tab Body',closable: true,}); }});</script></body>

当点击左边菜单栏选项时,右边窗口会显示对应名称的tab,内容显示“Tab Body”。

但重复点击时仍然添加新的tab,对添加新的tab代码进行改进,查看easyui关于tab的帮助文档,有个exits。。。改进代码如下:

$('#tt').tree({onClick: function (node) {//alert(node.text);  // alert node text property when clicked// add a new tab panel   这里使用exits判断tab是否已经存在if($('#tabs').tabs('exists',node.text)){$('#tabs').tabs('select',node.text);}else{$('#tabs').tabs('add', {title: node.text,content: 'Tab Body',closable: true,});}  }});

修改后,重复单击同一菜单栏时,不会再新建新的tab,而是返回到已建的tab。

另外,发现点击文件夹,也会新建tab,通过“id”筛选过滤简单地处理了。

10. 为tab创建一个新的view,而不是显示简单的“Tab Body”。新的视图采用easyui的datagrid。

先在Views-Home下新建视图UserEvent.aspx,这里一定要注意添加完视图后一定要返回修改HomeController.cs,为其添加一个UserEvent的跳转函数。

(将上面的代码中的content:xx替换为href:xx)

这里可以简单先参考帮助文档里的datagrid显示。

然而,每个菜单栏的选项点击后,都自动跳转到同一页面,有时间的话,大家可以多写几个view,根据node.text分别对应到相应的视图。

今天的学习先到这里,下一篇来写登录注销和数据库(SQLite)的一些东西。

最后放一张结果图:

 

转载于:https://www.cnblogs.com/jennyjiang-00/p/5753998.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374192.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

adc如何获取周期_LOL:千珏拥有ADC最需要的位移和无敌能力,为什么没人用她打下路?...

— 点击蓝字 关注我们 —英雄联盟自国服上线以来&#xff0c;已经陪伴玩家走过了9个年头&#xff0c;目前英雄联盟中的英雄数量已经达到了151位&#xff0c;每一位都各具特色。千珏是一位深受玩家们喜爱的英雄&#xff0c;其在官方英雄的定位中&#xff0c;属于打野英雄&#x…

android surfaceview 大小_Android 使用Camera2 API采集视频数据

Android 视频数据采集系列的最后一篇出炉了&#xff0c;和前两篇文章想比&#xff0c;这篇文章从系统API层面进行一些探索&#xff0c;涉及到的细节更多。初次接触 Camera2 API 会觉得它的使用有些繁琐&#xff0c;涉及到的类有些多&#xff0c;不过就像第一次使用Activity, Fr…

使用Java VisualVM分析您的应用程序

当您需要发现应用程序的哪个部分消耗更多的CPU或内存时&#xff0c;必须使用探查器执行此操作。 默认情况下&#xff0c;Sun JDK中附带的一个探查器是Java VisualVM。 这个事件探查器非常简单易用&#xff0c;功能强大。 在这篇文章中&#xff0c;我们将看到如何安装它并使用它…

ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接

ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接 原文:ArcSDE for SQL Server安装及在ArcMap中创建ArcSDE连接安装ArcSDE for SQL Server&#xff0c;最后一步成功后的界面如下&#xff1a;在ArcMap中创建ArcSDE连接&#xff0c;截图如下&#xff1a;posted on 2016-08-0…

python调用c函数传字符串参数_Python使用ctypes模块调用DLL函数之传递数值、指针与字符串参数...

在Python语言中&#xff0c;可以使用ctypes模块调用其它如C语言编写的动态链接库DLL文件中的函数&#xff0c;在提高软件运行效率的同时&#xff0c;也可以充分利用目前市面上各种第三方的DLL库函数&#xff0c;以扩充Python软件的功能及应用领域&#xff0c;减少重复编写代码、…

沁恒CH554 KEIL环境搭建

首先下载WCHISPTool_Setup.exe http://www.wch.cn/products/CH554.html 123这三个可下载的都下吧&#xff0c;后面开发都要用的 安装好后运行&#xff0c;菜单栏上&#xff0c;功能->添加WCH MCU到KEIL器件库 这时候在KEIL安装目录里面的UV4文件夹下可以看到wch.cdb的文件…

【CV论文阅读】Rank Pooling for Action Recognition

这是期刊论文的版本&#xff0c;不是会议论文的版本。看了论文之后&#xff0c;只能说&#xff0c;太TM聪明了。膜拜~~ 视频的表示方法有很多&#xff0c;一般是把它看作帧的序列。论文提出一种新的方法去表示视频&#xff0c;用ranking function的参数编码视频的帧序列。它使用…

VS2019 WPF制作OTA上位机(一)新建工程

首先创建新项目&#xff0c;文件 -> 新建 -> 项目 下拉菜单选择C#和Window&#xff0c;选择WPF应用程序&#xff0c;下一步 输入项目名&#xff0c;下一步 这里选择.NET 5.0&#xff0c;也可以选择其他的&#xff0c;个人习惯.NET&#xff0c;点击创建 这时候出现初始…

户籍恢复需要体检吗_脑梗死后脚麻能恢复吗?需要多久能恢复呢?

脑梗死之后脚部麻木&#xff0c;这个有一部分是能够恢复的&#xff0c;但是相对而言&#xff0c;恢复的时间比较长&#xff0c;在临床当中出现脚麻主要是因为梗死破坏了患者的感觉神经中枢从而造成。脚部感觉麻木&#xff0c;瘙痒或者是有蚂蚁在上面爬的感觉。而且有的更加严重…

Alpha版本测试报告

一、测试计划 Alpha版本即将发布&#xff0c;我们组织队员进行这一版本的测试。 测试主要针对两方面&#xff1a;浏览器兼容性和功能完善性。 测试分兼容性测试与功能完善性两部分&#xff0c;兼容性测试分Windows操作系统、Linux系操作系统、Mac OS X操作系统以及手机端Androi…

VS2019 WPF制作OTA上位机(二)获取bin文件路径

OTA升级是通过无线通信远程把bin文件内容传输到单片机&#xff0c;完成升级。 因此上位机需要获取bin文件的路径&#xff0c;读取bin文件内容&#xff0c;将内容分割依次发送&#xff08;因为单片机的接收缓存不会开得和bin文件一样大&#xff08;十几K甚至几十K&#xff09;&a…

linux更改用户名_破旧安卓手机第二春,在安卓手机上使用Linux_deploy运行Linux

由于服务器位于国外&#xff0c;害怕被墙掉导致数据丢失&#xff0c;所以在本地写了脚本每小时从服务器上导出并下载到本地。但是电脑不可能二十四小时开机&#xff0c;所以很想买一个树莓派4玩玩。但是太贵辽&#xff0c;还好搜索到了Android运行Linux的方法&#xff0c;下面记…

MCUXpress IDE常用设置

NXP的开发工具Xpress是基于eclipse制作的&#xff0c;我们如果需要设置一些东西可以直接搜索eclipse是怎么设置的。 1、字体大小 搜索eclipse字体大小&#xff0c;菜单Window > Preference 而Xpress是汉化了的&#xff0c;英语不好的同学可能懵逼&#xff0c;其实就是菜单栏…

C语言中空格符、空字符、字符数组结束符、换行、回车的区别

空格符和空字符是不一样的,在ASCII里面,空格(space)符号的ASCII码是32,而空字符是0, 2个是完全不一样的2个字符 空字符 一般来描述一个字符串的结尾,其实是控制符的一种,但不能理解为没有字符,应该理解为代表什么都没有的字符.好比回车0x0A和换行0x0D虽然不显示,但是也是控制字…

anaconda如何卸载库_小白必看!Anaconda安装全攻略

本文作者&#xff1a;戴 雯文字编辑&#xff1a;方 言技术总编&#xff1a;张馨月爬虫俱乐部云端课程来袭&#xff01;爬虫俱乐部将于2020年8月25日至28日在线上举行Stata数据分析法律与制度专题训练营&#xff0c;主要是为了让学员掌握Stata软件进阶操作&#xff0c;涉及…

iOS开发网络篇—文件的上传

说明&#xff1a;文件上传使用的时POST请求&#xff0c;通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂&#xff0c;因此本文只贴出部分关键代码。 主控制器的关键代码&#xff1a; YYViewController.m 1 #import…

var模型的matlab实现_Eviews中VAR模型的操作、脉冲响应分析和方差分解的实现

打开文件所在位置&#xff0c;获取数据。选中变量右键open打开var操作EViews,在VAR对象的工具栏中选择“View”|“Lag Structure”|“AR Roots Table/ AR Roots Graph”选项&#xff0c;得到AR根的表和图。结果显示&#xff1a;VAR模型所有根模的倒数都小于1&#xff0c;即都在…

结构体、枚举类型

一、结构体 结构体&#xff1a;就是一个自定义的集合&#xff0c;里面可以放各种类型的元素&#xff0c;用法大体跟集合一样。 1、定义的方法&#xff1a; struct student { public int nianling; public int fenshu; public string name; public string sex; public int sum; …

NXP KW38开发杂记(一)MCUXpress 运行进入NMI_Handler

这里是大佬的具体分析过程&#xff0c;感兴趣可以看看 https://www.cnblogs.com/wenhao-Web/p/13618703.html 解决办法&#xff1a; 在startup_mkw38a4.c文件里&#xff0c;定位到Flash_Config {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFE}; 把最后一个参数0xFFFFFFFE改…

25个让Java程序员更高效的Eclipse插件

Eclipse提供了一个可扩展插件的开发系统。这就使得Eclipse在运行系统之上可以实现各种功能。这些插件也不同于其他的应用&#xff08;插件的功能是最难用代码实现的&#xff09;。拥有合适的Eclipse插件是非常重要的&#xff0c;因为它们能让Java开发者们无缝的开发基于J2EE和服…