系列目錄javascript
爲了符合後面更新後的重構系統,本文於2016-10-31日修正一些截圖,文字php
咱們有了一系列的解決方案,咱們將動手搭建新系統吧。css
後臺系統沒有多大的UI視覺,此次咱們採用的是標準的左右分欄,左邊是系統菜單,右邊是一個以tabs頁組成的頁面集合,每個tab均可以單獨刷新和關閉html
Visual Studio 2012(以上)前端
打開咱們熟悉的VS建立一個空解決方案。我起了個名字叫Apps,類庫命名空間將與Apps開頭java
如Apps.BLL,Apps.Web等命名jquery
EasyUI下載:有多新用多新 http://www.jeasyui.com/download/list.php
json關於素材的存放,我列了下面前端框架
仍是新建一個「空」的控制器,添加index視圖框架
Index代碼
<!DOCTYPE html> <html> <head> <title>Index</title> <meta name="viewport" content="width=device-width" /> <script src="@Url.Content("~/Scripts/jquery.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.easyui.min.js")" type="text/javascript"></script> @Styles.Render("~/Content/css") @Styles.Render("~/Content/themes/blue/css") @Scripts.Render("~/bundles/home") </head> <body class="easyui-layout"> <div id="OverTimeLogin" class="easyui-dialog" data-options="closed:true,modal:true"> <iframe width="726px" scrolling="no" height="497px" frameborder="0" id="iOverTimeLogin"></iframe> </div> <div data-options="region:'north',border:false,split:true" style="height: 60px;"> <div class="define-head"> <div class="define-logo"> <div id="LoginTopLine">System Manage</div> <div id="LoginBotoomLine">MVC4+EF5.0+EasyUI</div> </div> <div class="define-account"> </div> </div> </div> <div data-options="region:'west',split:true,title:'菜單列表'" style="width: 200px; height:100%; padding-top: 2px; background-color:#fff; overflow:auto"> <div id="RightTree" style=" background-color:#fff;"> <div class="panel-loading">加載中...</div> </div> </div> <div data-options="region:'south',border:false" style="height: 20px;"> <div class="define-bottom"> </div> </div> <div data-options="region:'center',border:false"> <div id="mainTab" class="easyui-tabs" data-options="fit:true"> <div title="個人桌面" data-options="closable:true" style="overflow: hidden; background:#fff"> <iframe scrolling="auto" frameborder="0" src="" style="width: 100%; height: 100%;"></iframe> </div> </div> </div> <div id="tab_menu" class="easyui-menu" style="width: 150px;"> <div id="tab_menu-tabrefresh" data-options="iconCls:'icon-reload'"> 刷新</div> <div id="tab_menu-openFrame"> 在新的窗體打開</div> <div id="tab_menu-tabcloseall"> 關閉全部</div> <div id="tab_menu-tabcloseother"> 關閉其餘標籤頁</div> <div class="menu-sep"> </div> <div id="tab_menu-tabcloseright"> 關閉右邊</div> <div id="tab_menu-tabcloseleft"> 關閉左邊</div> <div id="tab_menu-tabclose" data-options="iconCls:'icon-remove'"> 關閉</div> <div id="menu" class="easyui-menu" style="width: 150px;"> </div> </div> </body> </html>
這裏咱們看到head @Styles.Render("~/Content/css")這些代碼,這是MVC的捆版壓縮技術,將css和javascript壓縮輸出到頁面。我已經作好了因此你們只要看下就能夠。也能夠谷歌一下他的原理組成。博客園不少大蝦也都給出了答案。其文件是App_Start下的BundleConfig.cs
$(function () { $('#tab_menu-tabrefresh').click(function () { /*從新設置該標籤 */ var url = $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src"); $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src", url); }); //在新窗口打開該標籤 $('#tab_menu-openFrame').click(function () { var url = $(".tabs-panels .panel").eq($('.tabs-selected').index()).find("iframe").attr("src"); window.open(url); }); //關閉當前 $('#tab_menu-tabclose').click(function () { var currtab_title = $('.tabs-selected .tabs-inner span').text(); $('#mainTab').tabs('close', currtab_title); if ($(".tabs li").length == 0) { //open menu $(".layout-button-right").trigger("click"); } }); //所有關閉 $('#tab_menu-tabcloseall').click(function () { $('.tabs-inner span').each(function (i, n) { if ($(this).parent().next().is('.tabs-close')) { var t = $(n).text(); $('#mainTab').tabs('close', t); } }); //open menu $(".layout-button-right").trigger("click"); }); //關閉除當前以外的TAB $('#tab_menu-tabcloseother').click(function () { var currtab_title = $('.tabs-selected .tabs-inner span').text(); $('.tabs-inner span').each(function (i, n) { if ($(this).parent().next().is('.tabs-close')) { var t = $(n).text(); if (t != currtab_title) $('#mainTab').tabs('close', t); } }); }); //關閉當前右側的TAB $('#tab_menu-tabcloseright').click(function () { var nextall = $('.tabs-selected').nextAll(); if (nextall.length == 0) { $.messager.alert('提示', '前面沒有了!', 'warning'); return false; } nextall.each(function (i, n) { if ($('a.tabs-close', $(n)).length > 0) { var t = $('a:eq(0) span', $(n)).text(); $('#mainTab').tabs('close', t); } }); return false; }); //關閉當前左側的TAB $('#tab_menu-tabcloseleft').click(function () { var prevall = $('.tabs-selected').prevAll(); if (prevall.length == 0) { $.messager.alert('提示', '後面沒有了!', 'warning'); return false; } prevall.each(function (i, n) { if ($('a.tabs-close', $(n)).length > 0) { var t = $('a:eq(0) span', $(n)).text(); $('#mainTab').tabs('close', t); } }); return false; }); }); $(function () { /*爲選項卡綁定右鍵*/ $(".tabs li").live('contextmenu', function (e) { /*選中當前觸發事件的選項卡 */ var subtitle = $(this).text(); $('#mainTab').tabs('select', subtitle); //顯示快捷菜單 $('#tab_menu').menu('show', { left: e.pageX, top: e.pageY }); return false; }); }); function addTab(subtitle, url, icon) { if (!$("#mainTab").tabs('exists', subtitle)) { $("#mainTab").tabs('add', { title: subtitle, content: createFrame(url), closable: true, icon: icon }); } else { $("#mainTab").tabs('select', subtitle); $("#tab_menu-tabrefresh").trigger("click"); } $(".layout-button-left").trigger("click"); //tabClose(); } function createFrame(url) { var s = '<iframe frameborder="0" src="' + url + '" scrolling="auto" style="width:100%; height:99%"></iframe>'; return s; } $(function () { $(".ui-skin-nav .li-skinitem span").click(function () { var theme = $(this).attr("rel"); $.messager.confirm('提示', '切換皮膚將從新加載系統!', function (r) { if (r) { $.post("../../Home/SetThemes", { value: theme }, function (data) { window.location.reload(); }, "json"); } }); }); });
index的腳本,這個home視圖的腳本,他集成了tab頁的右鍵菜單我已經集成到系統。運行以前要在Global.asax啓用壓縮
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Http; using System.Web.Mvc; using System.Web.Optimization; using System.Web.Routing; namespace App.Admin { // 注意: 有關啓用 IIS6 或 IIS7 經典模式的說明, // 請訪問 http://go.microsoft.com/?LinkId=9394801 public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); WebApiConfig.Register(GlobalConfiguration.Configuration); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); //啓用壓縮 BundleTable.EnableOptimizations = true; BundleConfig.RegisterBundles(BundleTable.Bundles); AuthConfig.RegisterAuth(); } } }
在BundleConfig.RegisterBundles(BundleTable.Bundles);前面加入
//啓用壓縮
BundleTable.EnableOptimizations = true;
好,咱們來看看效果!
若是你要啓用灰色主題那麼在將@Styles.Render("~/Content/themes/blue/css")
修改成@Styles.Render("~/Content/themes/gray/css")便可
其實這一些沒什麼好說的,只是爲系統搭建了一個簡單的框架。若是用easyui沒有不下幾個小時也是很難搭建起來的,不過別擔憂,我爲你們準備了原代碼
代碼下載 下載的源碼有的同窗運行有問題請把App_Start下的BundleConfig.cs更改成
using System.Web; using System.Web.Optimization; namespace App.Admin { public class BundleConfig { // 有關 Bundling 的詳細信息,請訪問 http://go.microsoft.com/fwlink/?LinkId=254725 public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new ScriptBundle("~/bundles/common").Include( "~/Scripts/common.js")); bundles.Add(new ScriptBundle("~/bundles/home").Include( "~/Scripts/home.js")); bundles.Add(new ScriptBundle("~/bundles/account").Include( "~/Scripts/Account.js")); //easyui bundles.Add(new StyleBundle("~/Content/themes/blue/css").Include("~/Content/themes/blue/easyui.css")); bundles.Add(new StyleBundle("~/Content/themes/gray/css").Include("~/Content/themes/gray/easyui.css")); bundles.Add(new StyleBundle("~/Content/themes/metro/css").Include("~/Content/themes/metro/easyui.css")); bundles.Add(new ScriptBundle("~/bundles/jqueryfrom").Include( "~/Scripts/jquery.form.js")); bundles.Add(new ScriptBundle("~/bundles/easyuiplus").Include( "~/Scripts/jquery.easyui.plus.js")); bundles.Add(new ScriptBundle("~/bundles/jqueryval").Include( "~/Scripts/jquery.validate.unobtrusive.plus.js")); // 使用 Modernizr 的開發版本進行開發和了解信息。而後,當你作好 // 生產準備時,請使用 http://modernizr.com 上的生成工具來僅選擇所需的測試。 bundles.Add(new ScriptBundle("~/bundles/modernizr").Include( "~/Scripts/modernizr-*")); bundles.Add(new StyleBundle("~/Content/css").Include("~/Content/site.css")); } } }
關於代碼:代碼沒有上傳整個解決方案,你下載解壓後,只須要引用現有類庫便可,關於裏面的素材,不懂的能夠問我,裏面包含裏之後全部要用到的素材