ExtTabMenu 控件

简介:

由于项目的需要,开发了一个称之为TabMenu的控件,原理比较简单,主要使用到了ExtJS的TapPanel,Toolbar,Menu,特点是容易使用,并且数据源采用ASP.NET的SiteMap文件。

简单的介绍一下我的做法:

1. 先创建一个TabPanel,

2. 然后再添加相应的TabItem,每个TabItem都有一个对应的工具栏,

3. 根据需要在每个工具栏上添加按钮和菜单。

如果你有兴趣,可以下载源代码进行参考。下面我只介绍一下TabMenu的使用方法。

第一步,创建适合TabMenu显示的sitemap,我用的sitemap示例如下:

<?xml version="1.0" encoding="utf-8" ?>
<siteMap xmlns="http://schemas.microsoft.com/AspNet/SiteMap-File-1.0" >
  <siteMapNode title="水环境">
    <siteMapNode title="基础信息">
      <siteMapNode url="~/11.aspx" title="水功能区划" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/12.aspx" title="饮用水源保护区" icon="~/examples/menu/list-items.gif">
        <siteMapNode url="~/121.aspx" title="测试" icon="~/examples/menu/list-items.gif"/>
        <siteMapNode url="~/122.aspx" title="测试2" target="_blank"/>
      </siteMapNode>
      <siteMapNode url="~/13.aspx" title="水质监测断面" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/14.aspx" title="污水处理厂" icon="~/examples/menu/list-items.gif"/>
    </siteMapNode>
    <siteMapNode title="监测信息分析">
      <siteMapNode url="~/21.aspx" title="水功能区划" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/22.aspx" title="饮用水源保护区" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/23.aspx" title="水质监测点"/>
      <siteMapNode url="~/24.aspx" title="排污口监测点" icon="~/examples/menu/list-items.gif"/>
    </siteMapNode>
    <siteMapNode title="环境质量">
      <siteMapNode url="~/31.aspx" title="监测点" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/32.aspx" title="湖库水质监测点" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/33.aspx" title="排污口监测点" icon="~/examples/menu/list-items.gif"/>
      <siteMapNode url="~/34.aspx" title="海域功能区划" icon="~/examples/menu/list-items.gif"/>
    </siteMapNode>
  </siteMapNode>
</siteMap>

第二步,在页面上创建SiteMapDataSource,例如:

<asp:SiteMapDataSource ID="xmlSiteMapDataSource" runat="server" ShowStartingNode="false"/>

第三步,注册并使用TabMenu:

注册TabMenu:

<%@ Register Namespace="Controls" TagPrefix="ux" %>

使用TabMenu:

<ux:ExtTabMenu ID="tabmenu1" runat="server" CssClass="ext-tab-menu" DataSourceID="xmlSiteMapDataSource" />

我的测试页面的完整的源代码如下:

<%@ Page Language="C#" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ Register Namespace="Controls" TagPrefix="ux" %>
<script runat="server">

</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Tab Menu Test</title>
	<link href="/extjs/resources/css/ext-all.css" rel="stylesheet" type="text/css" />
	<script src="/extjs/source/core/Ext.js" type="text/javascript"></script>
	<script src="/extjs/source/adapter/ext-base.js" type="text/javascript"></script>
	<script src="/extjs/ext-all-debug.js" type="text/javascript"></script>
	<script type="text/javascript">
	Ext.BLANK_IMAGE_URL = 'resources/images/default/s.gif';
	</script>
</head>
<body>
    <form id="form1" runat="server">
    <ux:ExtTabMenu ID="tabmenu1" runat="server" CssClass="ext-tab-menu" DataSourceID="xmlSiteMapDataSource" />
    <asp:SiteMapDataSource ID="xmlSiteMapDataSource" runat="server" ShowStartingNode="true"/>
    </form>
</body>
</html>

最后说明一下,由于项目很久以前就开始了,所以还在使用ExtJS v1.1.1,一直没有时间升级,所以这个控件也是为extjs 1.1定制的,当然这个控件也很容易升级为2.1版的,有兴趣的可以试一下smile_omg

测试项目下载

张志敏所有文章遵循创作共用版权协议,要求署名、非商业 、保持一致。在满足创作共用版权协议的基础上可以转载,但请以超链接形式注明出处。

本博客已经迁移到 GitHub , 围观地址: http://beginor.github.io/

本文转自张志敏博客园博客,原文链接:http://www.cnblogs.com/beginor/archive/2008/07/16/1244665.html ,如需转载请自行联系原作者
相关文章
|
网络协议 芯片
|
10月前
|
安全 物联网 量子技术
量子加密技术
量子加密技术
702 1
|
11月前
|
存储 运维 前端开发
如何自己搭建一个网站?
‌确定需求和目标‌:在开始搭建网站之前,明确网站的需求和核心,网站主要是什么途径:展示产品或服务、提供信息和资源、增加销售、提升品牌形象等。
529 3
|
11月前
|
机器学习/深度学习 人工智能 算法
打造你的超级Agent智能体——在虚拟迷宫中智斗未知,解锁AI进化之谜的惊心动魄之旅!
【10月更文挑战第5天】本文介绍了一个基于强化学习的Agent智能体项目实战,通过控制Agent在迷宫环境中找到出口来完成特定任务。文章详细描述了环境定义、Agent行为及Q-learning算法的实现。使用Python和OpenAI Gym框架搭建迷宫环境,并通过训练得到的Q-table测试Agent表现。此项目展示了构建智能体的基本要素,适合初学者理解Agent概念及其实现方法。
390 9
|
11月前
|
编解码 人工智能 数据可视化
imagen: 具有深度语言理解的逼真的文本到图像扩散模型
imagen: 具有深度语言理解的逼真的文本到图像扩散模型
167 0
|
人工智能 Dart 搜索推荐
移动应用开发的未来趋势:跨平台框架与AI的融合
本文探讨了移动应用开发领域的未来发展趋势,特别关注跨平台框架和人工智能(AI)技术的融合。文章首先概述了移动应用开发的当前状况,随后深入分析了跨平台框架如Flutter和React Native的兴起,以及AI技术如何革新移动应用的功能性和用户体验。最后,文章讨论了这些技术如何塑造移动应用开发的未来,并提出了对开发者的建议。
246 27
|
安全 5G 网络性能优化
无线接口 | 带你读《5G 无线系统设计与国际标准》之五
本节对物理层、数据链路层和网络层基本功能相关内容进行一些讨论。
无线接口  | 带你读《5G 无线系统设计与国际标准》之五
|
算法 应用服务中间件 nginx
QPS 提升60%,揭秘阿里巴巴轻量级开源 Web 服务器 Tengine 负载均衡算法
前言 在阿里七层流量入口接入层(Application Gateway)场景下, Nginx 官方的Smooth Weighted Round-Robin( SWRR )负载均衡算法已经无法再完美施展它的技能。
9401 98
|
搜索推荐
CorelDRAW2023安装下载教程分享
CorelDRAW2023是一款相当专业的图形图像处理软件。giant软件适合制作logo、网站等设计,新版将吸管工具放置在图像上面,会自动显示当前图像的颜色信息值,如果是RGB图像,还会显示出web网页色值,CorelDRAW系列已发布了21个版本,最近推出的CorelDRAW 2023是此系列中的最新版本,完善的新增必备工具、强大的平面设计功能和全新的外观界面为设计师提供了更广阔的创作空间,打开了通往新创意的大门,不管是矢量绘图或版面设计,还是网站制作或位图编辑,这套完整的图形设计软件均可帮助您按照自己的风格随心所欲地进行设计。
755 0
新版直播OBS操作手册
云栖社区直播频道改版啦!新版直播OBS操作速速Get!
12601 1
新版直播OBS操作手册