WebWork2.2新特性(九) AJAX之Tabbed Panels(選項卡)
Tabbed Panels(選項卡)是一個具有多個選項頁面的控件.在應用程序中很常見.
在WebWork中,還有另外一個tabbedPane,和這個類似,不過它的使用方法和本控件不同,具體可以參考以前版本中的TabbedPaneTest.action例子.
首先,我們把wiki文檔翻譯一下:
此面板組件允許你有一個選項卡面板,每個選項頁可以擁有本地的內(nèi)容或者遠程的內(nèi)容(用戶每次選擇這個選項頁都會刷新內(nèi)容).
屬性 - ww:tabbedPanel
名稱 | 描述 |
---|---|
id (required) | 組件標識 |
屬性 - ww:panel
名稱 | 描述 |
---|---|
id (required) | 標識ID |
tabName (required) | 選項文字,顯示在選項頁列表的頭部 |
href (required if remote panel) | 用來獲取內(nèi)容的網(wǎng)址 |
remote | true/false - 用來確定這是一個遠程面板(ajax)還是一個本地面板 (內(nèi)容會裝入可視或隱藏的容器) |
loadingText | 新的遠程內(nèi)容被獲取之前顯示的文字 |
reloadingText | 裝載內(nèi)容時對用戶顯示的文字,特別是取內(nèi)容的時候要花費很長的時間 (僅對遠程面板可用) |
errorText | 如果取內(nèi)容時發(fā)生了錯誤,向用戶顯示的提示 (僅對遠程面板可用) |
showErrorTransportText | true/false - 當獲取內(nèi)容有問題的時候,是否把錯誤信息當作內(nèi)容顯示(僅對遠程面板可用) |
listenTopics | 監(jiān)聽的Topic名稱(多個逗號分割),將會導致此面板重新獲取內(nèi)容 |
額外的配置
如果你在尋找"好看"的圓角效果, 這里有一個可用的配置. 這里假設選項卡的背景色是白色.如果你使用了不同的顏色,請修改 Rounded() 方法的參數(shù).
<link rel="stylesheet" type="text/css" href="<ww:url value="/webwork/tabs.css"/>"> <link rel="stylesheet" type="text/css" href="<ww:url value="/webwork/niftycorners/niftyCorners.css"/>"> <link rel="stylesheet" type="text/css" href="<ww:url value="/webwork/niftycorners/niftyPrint.css"/>" media="print"> <script type="text/javascript" src="<ww:url value="/webwork/niftycorners/nifty.js"/>"></script> <script type="text/javascript"> dojo.event.connect(window, "onload", function() { if (!NiftyCheck()) return; Rounded("li.tab_selected", "top", "white", "transparent", "border #ffffffS"); Rounded("li.tab_unselected", "top", "white", "transparent", "border #ffffffS"); // "white" 要替換為你的背景色 }); </script>
我們首先來分析一個例子,
<ww:tabbedPanel id="test" theme="ajax"> <ww:panel id="one" tabName="one" theme="ajax"> This is the first pane<br/> <ww:form> <ww:textfield name="tt" label="Test Text"/> <br/> <ww:textfield name="tt2" label="Test Text2"/> </ww:form> </ww:panel> <ww:panel id="two" tabName="two" theme="ajax"> This is the second panel </ww:panel> </ww:tabbedPanel> |
這個選項卡包含了2個選項頁面,都是本地頁面,使用ww:panel來定義頁面內(nèi)容,使用的模板都是ajax模板.
我們再來看如何定義遠程頁面:
<ww:tabbedPanel id="test2" theme="simple" > <ww:panel id="left" tabName="left" theme="ajax"> This is the left pane<br/> <ww:form > <ww:textfield name="tt" label="Test Text" /> <br/> <ww:textfield name="tt2" label="Test Text2" /> </ww:form> </ww:panel> <ww:panel remote="true" href="/AjaxTest.action" id="ryh1" theme="ajax" tabName="remote one" /> <ww:panel id="middle" tabName="middle" theme="ajax"> middle tab<br/> <ww:form > <ww:textfield name="tt" label="Test Text44" /> <br/> <ww:textfield name="tt2" label="Test Text442" /> </ww:form> </ww:panel> <ww:panel remote="true" href="/AjaxTest.action" id="ryh21" theme="ajax" tabName="remote right" /> </ww:tabbedPanel> |
可以看到定義了四個選項頁面,其中有2個是遠程頁面.
每次切換頁面時,相應"遠程頁面"的內(nèi)容都會刷新,本地頁面是不刷新的.
同時遠程頁面也可以監(jiān)聽Topic,具體使用可以參考Remote A或者使用JavaScript進行調(diào)用.(注:beta1里面的相關程序有一些錯誤)
除經(jīng)特別注明外,本文章版權歸JScud Develop團隊或其原作者所有.
轉(zhuǎn)載請注明作者和來源. scud(飛云小俠) 歡迎訪問 JScud Develop
posted on 2005-09-13 18:33 Scud(飛云小俠) 閱讀(1227) 評論(0) 編輯 收藏 所屬分類: WEB