WebObjects/Project WONDER/Frameworks/Ajax/AjaxUpdateContainer
外觀
AjaxUpdateContainer 是一種特別酷的元件,它允許您頁面上的任何元件在後臺重新整理,而無需完全重新整理頁面。AjaxUpdateContainer 使用 WOComponentContent。當它被排序時,其 webobjects 標記之間的所有內容都會被重新整理。
如果您的 AjaxUpdateContainer 包含元件操作,您必須在您的應用程式中包含 ERExtensions 框架,並擴充套件 ERXApplication 和 ERXSession,如 Project Wonder 快速入門 指南中所述。如果您的所有操作都是更新容器內的直接操作,則不需要這樣做。
此外,如果您打算使用“observeFieldID”繫結,您也必須包含 ERExtensions 框架(如上所述)。這個要求是因為需要一個部分表單提交(將修改後的觀察欄位傳送回伺服器),而 WOForm 需要更改才能識別出它應該為觀察到的值取值。
對於每個 AjaxUpdateContainer,都會自動生成一個名為“<id>Update()”的便捷 Javascript 函式。例如,如果您的 id 是“messageBox”,那麼 Javascript 函式將被命名為“messageBoxUpdate()”。呼叫此函式將導致容器重新整理。
Project Wonder 中的 AjaxExamples 專案中提供了一系列 AjaxUpdateContainer 演示。
- id(必需) - 將包含您內容的生成 HTML 元素的 ID
- elementName - 容器的 HTML 元素名稱(“div”或“span”,預設為“span”)
- observeFieldID - 這提供了類似於 Ruby on Rails 上 observe_field 幫助器的支援。observeFieldID 的值應該是您要觀察的表單元素的 id(例如,在 WOTextField 上設定 id = "Something" 並在您的更新容器上設定 observeFieldID = "Something";)。當欄位更改時,這將導致您正在觀察的欄位提交其新值,並且更新容器將重新整理。這允許您執行諸如依賴 WOPopUpButtons 之類的事情,其中一個彈出按鈕發生更改,導致第二個彈出按鈕使用新值重新整理。我只在兩者都在同一表單中時測試過這一點。
- frequency - 當指定時,更新容器將以該速率(以秒為單位)自動定期重新整理
- decay - 如果容器更新並且內容沒有更改,則每次請求都會將更新速率降低此因子
- evalScripts - 容器更新時是否應評估指令碼標記
- insertion
- onComplete
- onSuccess
- onFailure
- onException