1. 程式人生 > >【連載】研究EasyUI系統— Layout元件

【連載】研究EasyUI系統— Layout元件

  layout看它的名稱便知道是一個用於佈局的元件。事實上也是如此,layout由五個部分組成,分別位於螢幕的上、下、左、右、中五個位置(在easyui中用東、南、西、北、中來描述)。
  layout效果圖
  上圖便是layout元件的效果圖。layout依賴於panel和resizable兩個元件,因此繼承了兩個元件的屬性。layout元件除了中部的區域外,其他四個區域都是可選的,在實際專案中按需增刪。另外,這四個區域也是可伸縮的。我們依然通過導航選單、tab頁和資料列表的組合,描述layout元件的用法。
  先看一下layout元件製成導航選單的效果圖。
layout導航選單效果圖
  同時附上程式碼。
  
  layoutDemo.php

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="easyui/themes/bootstrap/easyui.css" />
        <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css" />
        <script
type="text/javascript" src="easyui/jquery.min.js">
</script> <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script> <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script> <title>layoutDemo</title>
<style> a { text-decoration:none; font-size: 13px; color:black } .nav-item { padding: 10px; border: none; } </style> <script> /* addTab方法用來新建或切換tab頁 */ function addTab(url,title) { if ($("#content_tab").tabs('exists', title)) { $("#content_tab").tabs('select', title); } else { $("#content_tab").tabs('add', { title: title, href: url, closable: true, cache:false }); } } </script> </head> <body class="easyui-layout" id="layout"> <!-- north區域使用了layout的href屬性,載入pageHeader.php作為頁面頭部 --> <div style="height:80px;" data-options="region:'north',split:false,href:'pageHeader.php'" ></div> <div style="width:200px;" data-options="region:'west',title:'導航選單',split:true"> <div class="nav-item"> <table> <tr> <td style="height:30px;"><img src="images/icon_menu.png" alt="" /></td> <td> <a href="javascript:void(0);" onclick="addTab('pageDepartment.php','部門資訊')">部門資訊</a> </td> </tr> <tr> <td style="height:30px;"><img src="images/icon_menu.png" alt="" /></td> <td> <a href="javascript:void(0);" onclick="addTab('#','人員資訊')">人員資訊</a> </td> </tr> </table> </div> </div> <!-- center區域包含tab元件,用來開啟各頁 --> <div data-options="region:'center'" style="padding:5px"> <div id="content_tab" name="content_tab" class="easyui-tabs" style="width:100%;height:auto;" data-options="plain:true"></div> </div> </body> </html>

pageHeader.php

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <div style="height:78px;background: #efefef">
            <span style="font-size: 26px;font-family: '黑體';line-height: 78px;padding-left: 20px;">Layout元件示例頁面</span>
        </div>
    </body>
</html>

pageDepartment.php

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link rel="stylesheet" type="text/css" href="easyui/themes/bootstrap/easyui.css" />
        <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css" />
        <script type="text/javascript" src="easyui/jquery.min.js"></script>
        <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
        <script type="text/javascript" src="easyui/locale/easyui-lang-zh_CN.js"></script>
        <title>部門資訊</title>
    </head>
    <body>
        <div class="container" style="overflow-x: hidden">
        <!-- “部門資訊”頁面包含了datagrid元件,我們會對該元件專門講解
          datagrid元件從dep.json讀取資訊並顯示 -->
            <div class="easyui-datagrid" id="gridDep"></div>
        </div>
        <script>
            $("#gridDep").datagrid({
                pagination:true,
                title:'部門資訊',
                fitColumns:false,
                url:'dep.json',
                rownumbers: true,
                singleSelect:true,
                loadMsg: '正在獲取資料,請稍後',
                pageSize:20,
                pageList:[20],
                columns:[[
                    {field:'ck',checkbox:true},
                    {field:'dep1',title:'序號',align:'center',hidden:true},
                    {field:'dep2',title:'部門名稱',align:'center',width:'20%'},
                    {field:'dep3',title:'成立時間',align:'center',width:'20%'},
                    {field:'dep4',title:'上級部門',align:'center',width:'20%'},
                    {field:'dep5',title:'部門主管',align:'center',width:'18%'},
                    {field:'dep6',title:'分管領導',align:'center',width:'15%'}
                ]]
            });
        </script>
    </body>
</html>

dep.json

[
    {"dep1": 1,"dep2": "總務部","dep3": "2014-1-1","dep4": "公司總部","dep5": "張三","dep6": "王總"},
    {"dep1": 2,"dep2": "銷售部","dep3": "2014-1-5","dep4": "公司總部","dep5": "李四","dep6": "李總"},
    {"dep1": 3,"dep2": "軟體事業部","dep3": "2014-3-20","dep4": "公司總部","dep5": "王五","dep6": "王總"},
    {"dep1": 4,"dep2": "硬體事業部","dep3": "2014-5-6","dep4": "公司總部","dep5": "趙六","dep6": "王總"},
    {"dep1": 5,"dep2": "銷售一中心","dep3": "2014-2-6","dep4": "銷售部","dep5": "小明","dep6": "李四"},
    {"dep1": 6,"dep2": "系統整合與維護中心","dep3": "2014-3-25","dep4": "軟體事業部","dep5": "小強","dep6": "王五"}
]

  上述程式碼簡單地展現了layout元件的基本用法。裡面涉及到datagrid元件,我們會另起一文講述。
  我們可以認為layout元件由框架和麵板兩部分組成。根據上述程式碼,<body>便是框架,因為它包含了內部三個面板。面板自然就是包含於中的三個<div>

  layout元件屬性(框架)

屬性名稱 屬性值型別 屬性預設值 描述
fit 布林值 false 如true,元件則填充父容器。



  layout元件屬性(面板)

屬性名稱 屬性值型別 屬性預設值 描述
title 字串 null 面板標題。
region 字串 面板位置。
共“north”、“south”、“west”、“east”、“center”五種。
border 布林值 true 是否顯示面板邊框。
split 布林值 false 是否顯示分隔欄,如有分隔欄,使用者可改變面板大小。
iconCls 字串 null 面板頭部的圖示樣式。
href 字串 null 指定該屬性後,面板會載入該屬性所指定的頁面。
collapsible 布林值 true 是否顯示可伸縮按鈕。
minWidth 數值 10 面板最小寬度。
minHeight 數值 10 面板最小高度。
maxWidth 數值 10000 面板最大寬度。
maxHeight 數值 10000 面板最大高度。

  layout元件中有關面板的屬性其實都不復雜,也不用太多講解。
  region、title、href用法已在程式碼x-1中詳細展示。west面板中,collapsible 屬性設定為true,便可以見到west面板右上角的可伸縮按鈕圖示。iconCls屬性用法請見panel部分。
http://blog.csdn.net/redeg/article/details/54311658
  split效果圖如下。
split屬性效果圖
  上圖中,我們將“北部區域”的面板(region 屬性值為“north”)的split屬性設為false,意為不顯示分隔欄。同時又將“西部區域”的面板(region 屬性值為“west”)的split屬性設為true,圖中可見“西部區域”與“中部區域”之間有一條分隔欄,使用者可以拖動上述分隔欄調整“西部區域”面板大小。
  layout元件方法:

方法名稱 引數 描述
resize param 調整layout元件大小。
panel region 返回指定的面板物件。
collapse region 收縮指定的面板。
expand region 展開指定的面板。
add options 新增面板。
remove region 刪除指定的面板。

  resize方法用於調整layout元件(是容器而不是面板)引數param是一組json,包含寬度和高度。
$("#layout").layout("resize", {width:"80%", height:400});
  panel、collapse、expand、remove功能比較簡單,他的引數是面板區域。除panel外,其他三個方法的引數分別為“north”、“south”、“west”、“east”,panel方法還增加了“center”引數。
$("#layout").layout("remove","north");
  add方法用法請參見tabs元件一文。
http://blog.csdn.net/redeg/article/details/56844983

相關推薦

連載研究EasyUI系統Layout元件

  layout看它的名稱便知道是一個用於佈局的元件。事實上也是如此,layout由五個部分組成,分別位於螢幕的上、下、左、右、中五個位置(在easyui中用東、南、西、北、中來描述)。      上圖便是layout元件的效果圖。layout依賴於pane

連載研究EasyUI系統— Window元件

  window元件是獨立於父元件的視窗元件,往往用於顯示額外的資訊或者接收使用者的輸入。視窗可以關閉,也可以拖動或拉伸,有很強的靈活性。   上圖採用了常用的網站設計,頂部為橙色背景條,點選“登入”按鈕彈出window元件,點選“取消”則隱藏元件。  

連載研究EasyUI系統—Panel元件(方法和事件)

    我們來看一下panel方法和事件。 panel方法。 方法名稱 引數 方法描述 options 無 返回所有屬性。 panel 無 返回整個panel元件物件。 header 無

連載研究EasyUI系統— Resizable元件

  resizable元件提供了一種可拉伸、縮小放大的功能,很多桌面應用程式,比如圖片檢視器、word文件等,使用者可以通過滑鼠將程式拉大拉小,resizable元件則在web頁面上為各類元素提供了類似的功能,我們先通過一個縮放圖片的例子瞭解一下resizabl

連載研究EasyUI系統—Tree元件(方法)

  前面幾篇文章介紹了tree元件的屬性,接下來我們要介紹tree元件的一些方法。 方法名稱 引數 描述 options 無 獲取元件所有屬性。 loadData data 載入節點資料。 getNo

連載研究EasyUI系統—Easyloader元件

    easyloader元件在easyui框架中的主要作用就是載入各種各樣的模組,可以是easyui預設的模組,也可以是其他外部(包括網路上的)模組。     easyloader屬性: 屬性名稱 屬性值型別 屬性預設值 描述

連載研究EasyUI系統—ProgressBar元件

  progressbar元件即極為常見的進度條,我們在安裝程式以及其他比較耗時的場合能看見。   首先看一下這個元件的效果,下面的程式碼實現了每隔1秒進度條就增加10%的功能。 <html> <head> <l

連載研究EasyUI系統—Panel元件(屬性)

    panel屬性比較多,根據常用的程度有選擇性地介紹一些。。 屬性名稱 屬性值型別 屬性預設值 描述 id 字串 null 控制元件id title 字串 null 控制元件header標題

連載研究EasyUI系統—Panel元件(概述)

    panel是最為基礎的佈局元件, 其他layout、accordion和tab等佈局元件都要依賴panel。panel是一個容器,在他內部可以建立其他元件。     我們可以通過html的形

原創.NET平臺機器學習元件-Infer.NET連載(一)介紹

關於本文件的說明   本文件基於Infer.NET 2.6對Infer.NET User Guide進行中文翻譯,但進行了若干簡化和提煉,按照原網站的思路進行,但不侷限與其順序。   歡迎傳播分享,必須保持原作者的資訊,但禁止將該文件直接用於商業盈利。   本人正在研究基於Infer.NET元件,並

原創.NET平臺機器學習元件-Infer.NET連載(二)貝葉斯分類器

關於本文件的說明   本文件基於Infer.NET 2.6對Infer.NET User Guide進行中文翻譯,但進行了若干簡化和提煉,按照原網站的思路進行,但不侷限與其順序。   歡迎傳播分享,必須保持原作者的資訊,但禁止將該文件直接用於商業盈利。   本人正在研究基於Infer.NET元件,並

連載計算機組成原理 --- 第四章指令系統

本章主要內容: (一)指令格式 1.指令的基本格式 2.定長操作碼指令格式 3.擴充套件操作碼指令格式 (二)指令的定址方式 1.有效地址的概念 2.資料定址和指令定址 3.常見定址方式 (三)CIS

iOSUICollectionView自己定義Layout之蜂窩布局

with top http reserve src 布局 step object .com 網上的UICollectionView的Layout布局,其cell的形狀多為矩形和圓形。 本篇博文將正六邊形作為cell的基本形狀,為您展現獨特的蜂窩布局效果及實現源代碼。 幫

LinuxLinux操作系統學習路線

目錄 用戶和用戶組 logs mysq 紅旗 移植 ini var 文件權限 數據離不開服務端的存儲,Linux是免費、開源、相對其他操作系統比較穩定、安全,是服務端部署首選的操作系統。 網上關於Linux的學習材料已經很多,這裏只是簡單羅列一下Linux的學習要點。 最重

以操作系統的角度述說線程與進程

chrom 如果 進程和線程 單元 當前 結果 right 不同 其它 轉自:http://blog.csdn.net/luoweifu/article/details/46595285 什麽是線程   什麽是線程?線程與進程與有什麽關系?這是一個非常抽象的問題,也是一個特

Java得到當前系統時間,精確到毫秒

logs out println -1 gettime system public pan time import java.text.SimpleDateFormat; import java.util.Date; import java.util.Calenda

CCF模板生成系統

== req 文本 fin nth mat vid using 規模 問題描述   成成最近在搭建一個網站,其中一些頁面的部分內容來自數據庫中不同的數據記錄,但是頁面的基本結構是相同的。例如,對於展示用戶信息的頁面,當用戶為 Tom 時,網頁的源代碼是  而當用戶為 Jer

CQOI2015 任務查詢系統 (主席樹)

names 輸入輸出格式 輸出 正整數 當前 getc printf scanf 大於 luogu & bzoj 題目描述 最近實驗室正在為其管理的超級計算機編制一套任務管理系統,而你被安排完成其中的查詢部分。超級計算機中的任務用三元組(Si,Ei,Pi)描述,

LinuxLinux操作系統期末復習筆記

tor 16px 引導 基本操作 sta keywords game 區域 bash Linux操作系統基礎Xu An 2018-7-4第一講 Linux簡介1、Linux是一個開源的操作系統,發布於GPL協議,全稱為GNU/Linux2、Linux和Unix是相近的3

北京高級系統實施工程師 10—30w/年

交流 分析報告 團隊合作 團隊 敬業 專業咨詢 興趣 解決 希望 【崗位職責】:1、 負責電商平臺業務調研工作,與電商平臺用戶進行接洽,了解用戶情況,分析用戶需求;2、 負責電商平臺業務分析工作,為用戶提供相關的業務咨詢和技術咨詢,提供相應的解決方案;3、 根據調研分析結果