热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CooliteTablePanel使用

TabPanel控件使用非常简单,但是功能却非常强大,它同MenuPanel、TreePanel一样提供了很多的集合属性,可以定制出丰富的
      TabPanel控件使用非常简单,但是功能却非常强大,它同MenuPanel、TreePanel一样提供了很多的集合属性,可以定制出丰富的应用。其中用得最多的就是他的Tabs属性,用于定义子标签选项,可参考下图所示:
                   ctTabPanel.jpg

      其中content.html的代码如下代码片段,下图为运行效果截图:
None.gif<html xmlns&#61;"http://www.w3.org/1999/xhtml" >
None.gif
<head>
None.gif    
<title>title>
ExpandedBlockStart.gif    
<style type&#61;"text/css">
ExpandedSubBlockStart.gif    body
{font-size:12px;}
ExpandedBlockEnd.gif    
style>
None.gif
head>
None.gif
<body>
None.gifTabPanel控件学习
None.gif
body>
None.gif
html>
None.gif
                  ctTabPanel1.jpg

      TabPanel最灵活的是动态的创建子标签选项&#xff0c;想了解这个创建过程的实现原理请查阅我之前写的两篇文章(本文前面有文章连接),需要注意的是不能通过同步的事件驱动去创建&#xff0c;一但页面PostBack新创建的所有标签选项将被全部清除。如果一定要通过服务端后台代码去动态创建&#xff0c;可使用Coolite Toolkit所提供的AjaxEvent机制。
protected void CreataTab_Click(object sender, AjaxEventArgs e)
{
    var tab 
&#61; new Tab("通过AjaxEvent新增Tab");
    tab.TabIndex 
&#61; short.Parse("11");
    tab.ID 
&#61; "tabID";
    tab.AutoLoad.Url 
&#61; "http://www.cnblogs.com";
    tab.AutoLoad.NoCache 
&#61; true;
    tab.AutoLoad.Mode 
&#61; LoadMode.IFrame;
    
this.tabPanel.Tabs.Add(tab);
    
this.tabPanel.ActiveTab &#61; tab;
}
<ext:Button ID&#61;"btnCreateTab" runat&#61;"server" Text&#61;"动态添加子标签选项">
    
<AjaxEvents>
        
<Click OnEvent&#61;"CreataTab_Click">
            
<EventMask ShowMask&#61;"true" Msg&#61;"正在加载dot.gifdot.gif"/>
        
Click>
    
AjaxEvents>
ext:Button>

      个人觉得通过同步方式创建页面总是会晃动一下&#xff0c;闪着让人很不爽。推荐通过客户端动态添加子标签选项的方式创建&#xff0c;TabPanel提供了相应的客户端API来完成这些操作。
<ext:Button ID&#61;"btnClient" runat&#61;"server" Text&#61;"添加Tab(Client)">
    
<Listeners>
        
<Click Handler&#61;"addTab(#{tabPanel}, &#39;tabCnblogs&#39;, &#39;http://www.cnblogs.com&#39;);" />
    
Listeners>
ext:Button>

      通过Javascript方法addTab()方法动态创建&#xff0c;三个参数分别为&#xff1a;TabPanel控件ID&#xff0c;新创建的Tab的ID,西创建的Tab所呈现的内容路径。
<script type&#61;"text/Javascript">
    
function addTab(tabPanel, id, url) {
        
var tab &#61; tabPanel.getComponent(id);
        
if (!tab) {
            tab 
&#61; tabPanel.add({ 
                id: id, 
                title: url,
                closable: 
true,                    
                autoLoad: {
                    showMask: 
true,
                    url: url,
                    mode:
&#39;iframe&#39;,
                    maskMsg: 
&#39;正在加载dot.gifdot.gif &#39;
                }                    
            });
        }
        tabPanel.setActiveTab(tab);
    }
</script>


      客户端创建的方式是纯Ext的操作方式&#xff0c;TabPanel提供了API可直接获取指定id的子Tab是否存在&#xff0c;使用这一功能就可以完美的处理互斥&#xff0c;以创建出唯一的Tab子标签选项。
                  ctTabPanel2.jpg
      TabPanel使用得多的就是用来处理多标签选项卡&#xff0c;另外多数时候是用作容器&#xff0c;其容器功能和Panel、Window等基本相同。就拿上一篇文章中创建的树做示例吧&#xff0c;现在需要将树显示在TabPanel的一个子标签选项里&#xff0c;可以直接调用TabPanel的客户端API方法addTab将一个存在的容器类型控件添加到TabPanel&#xff0c;使其成为TabPanel的子Tab。

ContractedBlock.gifCode

                    ctTabPanel3.jpg

转:https://www.cnblogs.com/easypass/archive/2010/03/11/1683568.html



推荐阅读
  • 深入理解Cookie与Session会话管理
    本文详细介绍了如何通过HTTP响应和请求处理浏览器的Cookie信息,以及如何创建、设置和管理Cookie。同时探讨了会话跟踪技术中的Session机制,解释其原理及应用场景。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 本文介绍了如何利用JavaScript或jQuery来判断网页中的文本框是否处于焦点状态,以及如何检测鼠标是否悬停在指定的HTML元素上。 ... [详细]
  • 导航栏样式练习:项目实例解析
    本文详细介绍了如何创建一个具有动态效果的导航栏,包括HTML、CSS和JavaScript代码的实现,并附有详细的说明和效果图。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何使用PHP检测AJAX请求,通过分析预定义服务器变量来判断请求是否来自XMLHttpRequest。此方法简单实用,适用于各种Web开发场景。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解Tornado模板系统
    本文详细介绍了Tornado框架中模板系统的使用方法。Tornado自带的轻量级、高效且灵活的模板语言位于tornado.template模块,支持嵌入Python代码片段,帮助开发者快速构建动态网页。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 本文详细介绍了如何使用Python编写爬虫程序,从豆瓣电影Top250页面抓取电影信息。文章涵盖了从基础的网页请求到处理反爬虫机制,再到多页数据抓取的全过程,并提供了完整的代码示例。 ... [详细]
  • 使用 Azure Service Principal 和 Microsoft Graph API 获取 AAD 用户列表
    本文介绍了一段通用代码示例,该代码不仅能够操作 Azure Active Directory (AAD),还可以通过 Azure Service Principal 的授权访问和管理 Azure 订阅资源。Azure 的架构可以分为两个层级:AAD 和 Subscription。 ... [详细]
  • 深入解析Spring Cloud Ribbon负载均衡机制
    本文详细介绍了Spring Cloud中的Ribbon组件如何实现服务调用的负载均衡。通过分析其工作原理、源码结构及配置方式,帮助读者理解Ribbon在分布式系统中的重要作用。 ... [详细]
author-avatar
西瓜凉皮大夏天
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有