大家对Bootstrap框架知识了解多少

Bootstrap是一个前端的技术框架,很多平台都可以采用,JAVA/PHP/.NET都可以用来做前端界面,整合JQuery可以实现非常丰富的界面效果,目前也有很多Bootstrap的插件能够提供给大家使用,但是在国内很多基于Bootstrap的介绍很多还是停留在教学的基础上,介绍Bootstrap的各种基础知识和简单的使用;本文希望以基于C#的MVC实际项目的基础上,对Bootstrap开发框架进行全面的案例介绍,以实际项目的代码和效果截图进行讲解,力求详尽、直观为大家介绍这方面的经验和心得。

1、基于Metronic的Bootstrap开发框架总览

Metronic是一个国外的基于HTML、JS等技术的Bootstrap开发框架整合,整合了很多Bootstrap的前端技术和插件的使用,是一个非常不错的技术框架。本文以这个为基础,结合我对MVC的Web框架的研究,整合了基于MVC的Bootstrap开发框架,使之能够符合实际项目的结构需要的实际项目。

以下是我整体性项目的总的效果图。

启动菜单区的内容,动态从数据库里面获取,系统顶栏放置一些信息展示,以及提供用户对个人数据快速处理,如查看个人信息、注销、锁屏等操作,内容区域则主要是可视化展示的数据,可以通过树列表控件、表格控件进行展示,一般数据还有增删改查、以及分页的需要,因此需要整合各种功能的处理。另外,用户的数据,除了查询展示外,还需要有导入、导出等相关操作,这些是常规性的数据处理功能。确定好这些规则和界面效果后,我们可以通过代码生成工具进行生成,快速生成这些Web项目的界面效果了。

2、Bootstrap开发框架菜单展示

整个框架涉及了很多内容,包括常规Bootstrap的各种CSS特性的使用,以及菜单栏、Bootstrap图标管理、系统顶栏、树形控件JSTree、Portlet容器、Modal对话框、Tab控件、、下拉列表Select2、复选框iCheck、多文本编辑控件summernote、文件及图片上传展示fileinput、提示控件bootstrap-toastr和sweetalert、数值调整控件touchspin、视频播放展示控件video-player等等,这些特性在整体性的解决方案里面都有设计,集合这些优秀的插件,能够为我们的框架提供更强大的功能和丰富的界面体验。

本节继续回到框架的开始部分,菜单的处理和展示。一般为了管理方便,菜单分为三级,选中的菜单和别的菜单样式有所区分,菜单可以折叠最小化,效果如下所示。

在Bootstrap,构建菜单是一个相对比较容易的事情,主要是利用了UL和LI,通过样式的处理,就可以实现了菜单的布局设置了,代码如下所示。

  • 首页

  • 行业动态

    • 行业动态

    • 4

      政策法规

    • 4

      通知公告

    • 4

      动态信息

但是,我们一般的菜单是动态变化的,也就是需要从数据库里面获取,并设置到前端显示,这样我们就需要在MVC的控制器里面,输出菜单的内容,然后绑定到前端的界面上,实现菜单数据的动态化,同时这也是权限控制的基础处理。

在基类里面,我们可以在用户登陆后,获取菜单的数据放到ViewBag对象里面。

具体代码如下所示,先判断用户是否登陆,如果登陆,则获取用户的菜单数据,存在ViewBag里面待用。

///

/// 重写基类在Action执行之前的处理

///

/// 重写方法的参数

protected override void OnActionExecuting(ActionExecutingContext filterContext)

{

base.OnActionExecuting(filterContext);

//得到用户登录的信息

CurrentUser = Session["UserInfo"] as UserInfo;

if (CurrentUser == null)

{

Response.Redirect("/Login/Index");//如果用户为空跳转到登录界面

}

else

{

//设置授权属性,然后赋值给ViewBag保存

ConvertAuthorizedInfo();

ViewBag.AuthorizeKey = AuthorizeKey;

//登录信息统一设置

ViewBag.FullName = CurrentUser.FullName;

ViewBag.Name = CurrentUser.Name;

ViewBag.MenuString = GetMenuString();

//ViewBag.MenuString = GetMenuStringCache(); //使用缓存,隔一段时间更新

}

}

其中,GetMenuString函数就是对菜单的组装处理。数据库中菜单的信息是一个树形结构,如下所示。

我们可以根据数据库的菜单信息,构建一部分界面用到的HTML代码。

#region 定义的格式模板

// javascript:;

// {0}?tid={1}

var firstTemplate = @"

{2}

";

var secondTemplate = @"

{1}

";

var thirdTemplate = @"

{2}

";

var firstTemplateEnd = "";

var secondTemplateStart = "

  • ";

var secondTemplateEnd = "

";

#endregion

例如三级菜单就可以通过代码进行生成。

//三级

icon = subNodeInfo.WebIcon;

//tid 为顶级分类id,sid 为第三级菜单id

tmpUrl = string.Format("{0}{1}tid={2}&sid={3}", subNodeInfo.Url, GetUrlJoiner(subNodeInfo.Url), info.ID, subNodeInfo.ID);

url = (!string.IsNullOrEmpty(subNodeInfo.Url) && subNodeInfo.Url.Trim() != "#") ? tmpUrl : "javascript:;";

sb = sb.AppendFormat(thirdTemplate, url, icon, subNodeInfo.Name, subNodeInfo.ID);

当然,如果想提高并发量,可以减少菜单的频繁检索,把这部分数据放到MemeryCache里面,如下处理即可。

public string GetMenuStringCache()

{

string itemValue = MemoryCacheHelper.GetCacheItem("GetMenuStringCache", delegate()

{

return GetMenuString();

},

null, DateTime.Now.AddMinutes(5) //5分钟以后过期,重新获取

);

return itemValue;

}

3、布局页面的使用

同时,我们为了提高页面的重用,一般情况下,是把每个页面相同部分的内容抽离出来,放到总的布局页面上,这样处理内容区域外,其他部分全部是继承自布局视图页面的内容了,我们的动态菜单部分,也是在布局视图里面的一部分内容。

上图的_Layout.cshtml就是基于C#的MVC总的布局视图页面。这样,我们在这个页面里面,设定了菜单的展示内容,以及留出主页面内容的部分,以及脚本的部分展示,就可以了。

菜单的展示代码如下所示:

布局页面留出的页面展示Section如下所示。

由于Bootstrap一般把JS文件放到最后加载,因此我们在布局页面保留部分必备的Jquery等脚本外,还需要把脚本部分内容放到页面底部进行加载,并且我们脚本加载可以利用MVC的Bundles技术进行压缩整合处理。关于这方面技术,可以参考我之前的文章介绍《基于MVC4+EasyUI的Web开发框架经验总结(11)--使用Bundles处理简化页面代码》。

这样,我们在各个子页面的视图里面,引入布局视图页面后,只需要编写个性化展示内容的部分即可,具体代码如下所示。

然后在页面底部,包含所需部分的脚本代码即可,这样在页面生成后,就会依据布局页面设置好的顺序块,进行合理的展示,并且是把所有部分内容进行整合了。

4、页面编辑工具Sublime Text的使用

我前面截图,很多是VS环境里面的,不过一般我们编辑视图页面的时候,都是采用Sublime Text这个强大的编辑工具的,丰富的插件、智能语法提示等,会让你用了之后爱不释手,是编辑视图页面非常快速的利器,强烈推荐使用。

VS一般我们用来做文件管理,以及编译等处理就可以了。

以上内容是小编给大家介绍的基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理的相关知识,希望对大家有所帮助,如果大家想了解更多资讯敬请关注脚本之家网站!

java metronic_基于BootStrap Metronic开发框架经验小结【一】框架总览及菜单模块的处理...相关推荐

  1. 基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理

    最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap开发框架进行经验的总结出来和大家分享下,同时也记录自己对Bootstrap开发的学习研究的点点滴 ...

  2. java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调试部署+系统+数据库+lw java毕业设计基于Bootstrap框架的读书网站设计与实现mybatis+源码+调 ...

  3. java毕业设计基于Bootstrap的家具商城系统设计mybatis+源码+调试部署+系统+数据库+lw

    java毕业设计基于Bootstrap的家具商城系统设计mybatis+源码+调试部署+系统+数据库+lw java毕业设计基于Bootstrap的家具商城系统设计mybatis+源码+调试部署+系统 ...

  4. java metronic_基于Metronic的Bootstrap开发框架总览

    最近一直很多事情,博客停下来好久没写了,整理下思路,把最近研究的基于Metronic的Bootstrap开发框架进行经验的总结出来和大家分享下,同时也记录自己对Bootstrap开发的学习研究的点点滴 ...

  5. 基于Metronic的Bootstrap开发框架经验总结(11)--页面菜单的几种呈现方式

    在常规的后台管理系统或者前端界面中,一般都有一个导航菜单提供给用户,方便选择所需的内容.基于Metronic的Bootstrap开发框架,是整合了Metroinc样式,以及Boostrap组件模块的内 ...

  6. java毕业设计基于Bootstrap的读书网站设计与实现(附源码、数据库)

    项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  7. 基于Metronic的Bootstrap开发框架经验总结(7)--数据的导入、导出及附件的查看处理...

    在很多系统模块里面,我们可能都需要进行一定的数据交换处理,也就是数据的导入或者导出操作,这样的批量处理能给系统用户更好的操作体验,也提高了用户录入数据的效率.我在较早时期的EasyUI的Web框架上, ...

  8. 基于Metronic的Bootstrap开发框架经验总结(2)--列表分页处理和插件JSTree的使用...

    为什么80%的码农都做不了架构师?>>>    在上篇<基于Metronic的Bootstrap开发框架经验总结(1)-框架总览及菜单模块的处理>介绍了Bootstrap ...

  9. 基于Metronic的Bootstrap开发框架经验总结(5)--Bootstrap文件上传插件File Input的使用...

    Bootstrap文件上传插件File Input是一个不错的文件上传控件,但是搜索使用到的案例不多,使用的时候,也是一步一个脚印一样摸着石头过河,这个控件在界面呈现上,叫我之前使用过的Uploadi ...

最新文章

  1. 二叉树的三叉链表实现c语言,数据结构:二叉树的三叉链表存储--Java实现
  2. mpi tcp连接报错_关于WinCC与真实PLC之间的TCP/IP连接问题-工业支持中心-西门子中国...
  3. 西门子ddc_铁门关西门子两通电动阀VVF42.25-10C+SKD60西
  4. java完数流程图_编程基本功训练:流程图画法及练习
  5. 你应该升级到SQL Server 2005还是SQL Server 2008?
  6. win10系统下安装Linux虚拟机以及在虚拟机上安装Ubuntu
  7. mysql清理死链接_对MySQL的死连接Sleep的进程的来源研究
  8. list某字段去重再合并统计_java mapreduce实现数据去重
  9. jQuery中的live绑定多个事件整理
  10. mvn package时,报错A required class is missing: com/thoughtworks/xstream/io/HierarchicalStreamDriver...
  11. 第一章 Android Framework 基础认知
  12. 树莓派-12-投屏秒变家庭影院kodi跨平台媒体播放器
  13. 大数据处理中心什么意思_什么是数据处理中心或数据中心
  14. 程序员的一天:一寸光阴一寸金
  15. MYSQL 基本练习
  16. 在开发中总结的一点小技巧
  17. 图像开运算、闭运算、形态学梯度、“礼帽”和“黑帽”
  18. 用一条sql语句判断两个日期是否处于同一月份!
  19. Matlab R2019a Win64位(中文)迅雷磁力链
  20. 《高效能人士的七个习惯》读书笔记

热门文章

  1. xp计算机workgroup无法访问,无法访问,教您怎么解决workgroup无法访问
  2. 【考研计算机操作系统】 强化笔记
  3. 06 nginx 处理转发其他域的处理 以及 proxy_redirect
  4. CTF misc之流量分析题套路总结
  5. 三维空间直角坐标系转换(1)
  6. 华为京东商城25日华为荣耀3CBUG预约抢购 电信版未上市
  7. LightOJ 1319 - Monkey Tradition (中国剩余定理)
  8. win7无盘服务器配置,易游WIN7无盘安装之WIN7设置
  9. zabbix snmp 自动发现、自定义自动发现规则和监控项原型实现原理
  10. Linux网络编程——在线词典项目