- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
常用控件TabPanel
Coolite Toolkit学习笔记八:常用控件TabPanel
????记得在去年的一个产品开发中,公司老大要我们实现多标签选项卡的方式来呈现程序页面,当时没有成熟的主控框架,也没有好的技术文章可参考,凭着自己对需求文档上的描述理解,花了一周多时间自己吓整一通开发了一个系统主控框架出来。效果如下图:????????????????????????关于这系统主控框架的开发我也通过两篇博文的方式分享,并提供了示例代码下载,有兴趣的朋友看直接查阅这两篇文章。??????(一):业务系统设计之二:系统主控设计(上) ??????(二):业务系统设计之三:系统主控设计(下) ??????当时开发这一个东西确实耗了不少时间和精力,现在开发一个这样的东西可以很方便快速的实现了,Coolite Toolkit所提供的TabPanel就可以方便的解决上面这种需求。??????TabPanel控件使用非常简单,但是功能却非常强大,它同MenuPanel、TreePanel一样提供了很多的集合属性,可以定制出丰富的应用。其中用得最多的就是他的Tabs属性,用于定义子标签选项,可参考下图所示:?????????????????????????其中content.html的代码如下代码片段,下图为运行效果截图:
html?xmlns=/1999/xhtml?head????title/title????style?type=text/css????body{}{font-size:12px;}????/style/headbodyTabPanel控件学习/body/html
????????????????????????TabPanel最灵活的是动态的创建子标签选项,想了解这个创建过程的实现原理请查阅我之前写的两篇文章(本文前面有文章连接),需要注意的是不能通过同步的事件驱动去创建,一但页面PostBack新创建的所有标签选项将被全部清除。如果一定要通过服务端后台代码去动态创建,可使用Coolite Toolkit所提供的AjaxEvent机制。
protected?void?CreataTab_Click(object?sender,?AjaxEventArgs?e){????var?tab?=?new?Tab(通过AjaxEvent新增Tab);????tab.TabIndex?=?short.Parse(11);????tab.ID?=?tabID;????tab.AutoLoad.Url?=?;????tab.AutoLoad.NoCache?=?true;????tab.AutoLoad.Mode?=?LoadMode.IFrame;????this.tabPanel.Tabs.Add(tab);????this.tabPanel.ActiveTab?=?tab;}
ext:Button?ID=btnCreateTab?runat=server?Text=动态添加子标签选项????AjaxEvents????????Click?OnEvent=CreataTab_Click????????????EventMask?ShowMask=true?Msg=正在加载/????????/Click????/AjaxEvents/ext:Button
??????个人觉得通过同步方式创建页面总是会晃动一下,闪着让人很不爽。推荐通过客户端动态添加子标签选项的方式创建,TabPanel提供了相应的客户端API来完成这些操作。
ext:Button?ID=btnClient?runat=server?Text=添加Tab(Client)????Listeners????????Click?Handler=addTab(#{tabPanel},?tabCnblogs,?);?/????/Listeners/ext:Button
??????通过JavaScript方法addTab()方法动态创建,三个参数分别为:TabPanel控件ID,新创建的Tab的ID,西创建的Tab所呈现的内容路径。
script?type=text/javascript????function?addTab(tabPanel,?id,?url)?{????????var?tab?=?tabPanel.getComponent(id);????????if?(!tab)?{????????????tab?=?tabPanel.add({?????????????????id:?id,?????????????????title:?url,?????????????
文档评论(0)