我問這只是爲了清楚:我意外地將createForm屬性設置爲false。然後,我期待一個鏈接事件,應該打開另一個頁面,但不能再運行。 這是SSJS事件的預期行爲,例如在禁用表單創建的鏈接中?Xpage,createForm = false會禁用鏈接上的SSJS事件?
2
A
回答
8
根據提及,所有事件都需要一個表單:如果它們是全刷新的,那麼該頁面需要一個表單來發布以觸發重定向;如果它們是部分刷新,則表單將確定AJAX POST的內容。
XPages運行時包含對錶單組件的支持,但它不包含在組件調色板中(並且不能通過設計器首選項添加它),因此將其添加到頁面的唯一方法是編輯源XML直。例如:
<xp:form>
<xp:link id="exampleLink" text="Example Text">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:// event code}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:form>
有(至少)兩個原因,這部分是有用的:
- 它可以提高性能。如果頁面包含功能不同的不同區域 - 換句話說,頁面的一部分中的事件不需要知道頁面的任何其他部分中的數據 - 然後將每個部分以單獨的形式組件會導致每個事件只發布與觸發事件的組件相同的窗體中包含的數據。您的問題表明,當您將
createForm
設置爲false
時,打破的鏈接應將用戶導航到另一個頁面;因此,很可能此事件不需要知道任何字段值,因爲用戶仍然會離開當前頁面。如果是這樣,請將此鏈接以自己的形式包裝起來,並將所有字段包裝在單獨的表單中,並且鏈接的執行速度要稍微快一些,因爲瀏覽器不必發佈任何字段數據......鏈接本身的標識符。 - 它可以提供風格的靈活性。開發人員通常會從實際的最終用戶需求中接收不熟悉Domino的設計者的預定CSS - 例如,如果網站設計是外包的,或者必須遵守企業風格指南。當設計師做出某些假設時,這往往成爲緊張的根源,乍看之下,它與Domino生成的標記不兼容。其中一個最常見的例子就是當網站包含搜索功能時,因爲大多數網頁開發者將有一種搜索形式和一個單獨的其他領域的兄弟形式。當設計人員或開發人員不得不修改樣式表時,這可能會增加項目的成本,而設計師已經開發了一個樣式表來說明圍繞所有內容的單個表單標籤。簡而言之,抑制默認的表單元素並在需要的地方明確指定表單組件,可以更容易地遵守外部施加的樣式指導。
所以有很多使用情況下,它實際上是最好的一個XPage使用一個或多個表單組件......只記得所有的數據和事件必須是一個形式裏面 - 默認的形式是否通常包圍所有內容或手動包含的表單組件 - 而且這些表單不能嵌套。您可以添加儘可能多的表單組件,但它們必須是兄弟姐妹。沒有任何表單可以包含其他表單
3
是的,因爲你正在做HTTP POST請求,他們需要一個表單。
您可以將POST請求鏈接轉換爲GET請求鏈接,而不是被移除SSJS事件,並創建一個「基本」的鏈接,而不是:
<xp:link escape="true" text="Link" id="link2" value="/somepage.xsp"></xp:link>
但是如果你需要的SSJS邏輯,那麼你還需要有一個表格。
+0
好點,謝謝您的評論 – 2013-04-07 11:38:20
相關問題
- 1. Lotus Notes Xpage,如何在SSJS中獲取事件句柄(onKeyPress)?
- 2. Xpage擴展庫中的SSJS日曆
- 3. 鏈接上的onfocus事件
- 4. 禁用點擊事件的除了鏈接內的所有鏈接
- 5. 當您打開一個鏈接時觸發SSJS
- 6. 在jxbrowser上使用鏈接事件
- 7. 禁用鏈接
- 8. XPages - SSJS調用bean
- 9. 禁用指針事件的鏈接,但保持活動:懸停事件
- 10. 禁用移動設備上的鏈接
- 11. 日曆上的鏈接標記事件
- 12. 如何從xpage鏈接打開文檔?
- 13. 當url鏈接點擊時,android禁用onclick事件
- 14. GWT:如何在單擊時禁用錨鏈接事件
- 15. 單擊鏈接時是否應禁用懸停事件?
- 16. 錨鏈接禁用
- 17. 禁用超鏈接
- 18. 如何從使用SSJS的xpage中的文檔獲取所有字段名稱?
- 19. Chrome中的xpage郵件鏈接顯示@ as%40
- 20. 當頁面上已經禁用鏈接
- 21. 在MediaWiki上禁用「紅色鏈接」
- 22. LongListSelector鏈接事件
- 23. 禁用LinkButton不會禁用javascript中的單擊事件
- 24. 禁用鏈接的onbeforeunload
- 25. 禁用WordPress的短鏈接
- 26. jQuery .click()事件不會在使用.load()創建的鏈接上觸發
- 27. 鏈接上的Google Analytics事件跟蹤是否會減慢用戶體驗?
- 28. MySQL中的鏈接事件
- 29. 鏈接事件的切換()
- 30. 「taphold」事件禁用上的文本框
謝謝蒂姆,非常詳細的解釋! – 2013-04-07 11:38:01
我也在我的複雜樣本上測試了它 - 它的工作原理! – 2013-04-07 12:18:08
我已經閱讀過有關'xp:form'的一些關於StackOverflow本身的內容,但直到現在才知道它的實用性。謝謝蒂姆! – Naveen 2013-04-08 12:23:38