簡體   English   中英

在Xpages中,控件的所有屬性中的事件與事件處理程序中的事件

[英]Events into all properties of a control vs events into an event handler, in Xpages

我試圖了解存在於控件的“所有屬性”選項卡中的事件(onclick,onfocus等)與控件的事件處理程序中的相同事件之間的區別。

當嘗試在“所有屬性onclick”中添加客戶端或服務器代碼時,它會在頁面加載之前執行,而我什至不嘗試做任何事情...(與onfocus,onkeydown等相同,它們都在頁面加載時立即執行)。

有什么解釋嗎? (或與擴展鏈接)(當然,我總是與事件處理程序一起工作,我對此表示滿意,但是...我只是想知道。)

基本上,添加到組件屬性中的事件是HTML組件的本機事件。 您只能在此處運行客戶端javascript。

<input type="text" onchange="doStuff()" class="xspInputFieldEditBox" name="view:_id1:inputText1" id="view:_id1:inputText1">

添加到eventHandler中的事件是綁定事件。 XPages有一個eventHandler渲染器,該渲染器創建一個javascript函數,並在加載時通​​過XSP.attachEvent方法將其附加到組件中。

事件處理程序還按順序提供多個CSJS事件。 因此,您可以僅通過返回false來停止其余代碼。 例如:

<xp:eventHandler
    event="onchange"
    submit="false">
    <xp:this.script>
        <xp:scriptGroup>
            <xp:executeClientScript
                script="if(! confirm('Confirm the next action?')) return false;"></xp:executeClientScript>
            <xp:executeClientScript
                script="doStuff();"></xp:executeClientScript>
        </xp:scriptGroup>
    </xp:this.script>
</xp:eventHandler>

如果用戶在確認對話框上單擊“取消”,則此腳本組將停止。

此事件機制具有其他功能。 它可以創建返回到服務器的GET / POST ajax請求(通過托管bean或SSJS的服務器端代碼),並在頁面上進行部分/全部刷新,此外還可以控制驗證,部分執行等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM