导航器篇

Toturial » 导航器篇

章节目录:

导航器控件用于数据分页、界面切换、功能操作项选择等场合。

Pager 分页控件

Pager是用于数据表格做数据导航的分页控件,也可以把分页控件独立出来单独使用。

当开发者使用DataGrid数据表格控件时,不需要处理Pager控件,只需要使用DataGrid开放的api方法即可。

当开发者独立使用Pager控件时,可以给Pager设置pageIndex、pageSize和totalCount。这三个属性将更新分页控件的按钮和文本等信息。

当用户点击分页按钮时,Pager将激发"pagechanged"事件。开发者通过监听"pagechanged"事件,获取当前pageIndex和pageSize信息,进行功能操作。比如使用Ajax从服务端获取分页数据后,更新界面视图。

示例代码如下:

<div class="mini-pager" style="width:500px;background:#ccc;" 
    totalCount="123" onpagechanged="onPageChanged" sizeList="[5,10,20,100]">        
</div>    
<script type="text/javascript">
    function onPageChanged(e) {
        alert(e.pageIndex+":"+e.pageSize);
    }       
</script>

效果图如下:

Note:参考Pager 分页控件示例

Tabs 选项卡

Tabs用于界面切换导航,可以在页面的同一区域定义多个数据视图。

开发者可以为每个子Tab项创建一个独立页面,也可以通过监听Tabs的"activechanged"事件,动态控制刷新同一个视图界面。

标准示例代码如下:

<div class="mini-tabs" activeIndex="0"  style="width:350px;height:200px;">
    <div title="Tab1">
        1
    </div>
    <div title="Tab2" iconCls="icon-cut" >
        2
    </div>
    <div title="Tab3" showCloseButton="true" >
        3
    </div>
    <div title="Tab4" showCloseButton="true" enabled="false">
        4
    </div>
</div>

效果图如下:

开发者可以通过设置Tabs的tabPositoin和tabAlign,来控制选项卡头部的位置和对齐方式。也可以将Tabs头部换行。

设置Tabs的tabPosition为"bottom"效果图如下:

设置Tabs的tabAlign为"right"效果图如下:

设置其中一个子Tab的newLine为"true"效果图如下:

Note:参考Tabs 选项卡

OutlookBar 折叠导航器

OutlookBar通常位于系统界面的左侧,通过点击OutlookBar内的链接,切换右侧的内容区页面。

它的功能和界面跟树形导航器类似,但是没有树形导航的多层级展现,通常是2个层级的栏目。

标准示例代码如下:

<div class="mini-outlookbar " activeIndex="0" style="width:180px;height:200px;" autoCollapse="true">
    <div title="Small Items">            
        <ul id="menu1" class="mini-menu" allowSelectItem="true" style="width:100%;border:0;background:none;">                            
            <li iconCls="icon-add" onclick="onItemClick">新增</li>
            <li iconCls="icon-edit" onclick="onItemClick">修改</li>
            <li iconCls="icon-remove" onclick="onItemClick">删除</li>
        </ul>
    </div>
    <div title="Large Items">
        <ul id="menu2" class="mini-menu" allowSelectItem="true" style="width:100%;border:0;background:none;">                            
            <li iconCls="Note" iconPosition="top" onclick="onItemClick">Notes</li>
            <li iconCls="Reports" iconPosition="top" onclick="onItemClick">Reports</li>
        </ul>
    </div>
</div>

效果图如下:

Note:参考OutlookBar 折叠导航器示例

Tree 树形导航器

Tree作为导航器的作用,跟OutlookBar类似。通常都位于系统界面的左侧,点击树形节点,切换右侧的主内容区域页面。

与OutlookBar不同的是,OutlookBar通常只有2个层级,Tree可以有无限层级。

标准示例代码如下:

<ul id="tree1" class="mini-tree" style="width:100%;" showTreeIcon="true">
    <li>
        <span>视频网站</span>
        <ul>
            <li><a href="http://www.youku.com/" target="main">优酷网</a></li>
            <li><a href="http://www.qiyi.com/" target="main">奇艺网</a></li>
            <li><a href="http://www.tudou.com/" target="main">土豆网</a></li>            
        </ul>
    </li>
    <li>
        <span>新闻网站</span>
        <ul>
            <li><a href="http://www.qq.com/" target="main">腾讯网</a></li>
            <li><a href="http://www.163.com/" target="main">网易</a></li>
            <li><a href="http://www.sohu.com/" target="main">搜狐网</a></li>            
        </ul>
    </li>                       
</ul>   

效果图如下:

Note:参考树形导航示例

Menu可用于界面切换和功能项选择操作。

Menu可以横向排列,如下示例代码:

<ul id="menu1" class="mini-menu" vertical="false" style="width:350px;">
    <li>
        <span icon="icon-save" >文件(F)</span>
        <ul>
            <li onclick="onItemClick">
                <span >新建</span>
                <ul>
                    <li iconCls="icon-new" onclick="onItemClick">文件</li>
                    <li onclick="onItemClick">项目</li>                        
                    <li onclick="onItemClick">网站</li>                                                                      
                </ul>
            </li>
            <li class="separator"></li>
            <li iconCls="icon-cut" onclick="onItemClick">Cut</li>                
            <li iconCls="icon-add" onclick="onItemClick">Add</li>
            <li iconCls="icon-remove" onclick="onItemClick">Close</li>          
        </ul>
    </li>
    <li class="separator"></li>
    <li >编辑(E)</li>
    <li  onclick="onItemClick">查看(V)</li>
</ul>

效果图如下:

Menu可以竖向排列,如下示例代码:

<ul id="menu2" class="mini-menu">
    <li>
        <span >操作</span>
        <ul>
            <li iconCls="icon-new" onclick="onItemClick">新建</li>
            <li class="separator"></li>
            <li iconCls="icon-add" onclick="onItemClick">增加</li>    
            <li iconCls="icon-edit" onclick="onItemClick">修改</li>
            <li iconCls="icon-remove" onclick="onItemClick">删除</li>                      
        </ul>
    </li>
    <li class="separator"></li>
    <li iconCls="icon-open" onclick="onItemClick">打开</li>
    <li iconCls="icon-remove" onclick="onItemClick">关闭</li>
</ul>

效果图如下:

Note:参考Menu菜单示例

ContextMenu 右键菜单

ContextMenu其实就是Menu。它们的不同之处在于,Menu是直接显示的,ContextMenu是右键弹出显示的。

首先,设置菜单样式"display:none";然后,监听目标DOM元素的"contextmenu"事件,调用菜单的"showAtPos"方法。

$("#region1").bind("contextmenu", function (e) {
    var menu = mini.get("contentMenu");
    menu.showAtPos(e.pageX, e.pageY);
    return false;
});

效果图如下:

Note:参考右键菜单示例