簡體   English   中英

XPages事件onStart和onComplete與dojo.connect結合使用

[英]XPages events onStart and onComplete in conjunction with dojo.connect

我想將xp:eventHandler事件onStartonCompletedojo.connect結合使用。

看一下以下代碼片段:

    <xp:scriptBlock id="scriptBlock1">
        <xp:this.value><![CDATA[
dojo.connect(dojo.byId("#{id:btnSubmit}"), "onclick", callbackOnClick);
dojo.connect(dojo.byId("#{id:btnSubmit}"), "onComplete", callbackOnComplete);

function callbackOnClick() {
    alert("onclick works!!!");
}

function callbackOnComplete() {
    alert("onComplete works!!!");
}   ]]></xp:this.value>
    </xp:scriptBlock>

  <xp:button value="Submit" id="btnSubmit">
        <xp:eventHandler event="onclick" submit="true" refreshMode="norefresh">
            <xp:this.action><![CDATA[#{javascript:// do something on server side}]]></xp:this.action>
<!--            <xp:this.onComplete><![CDATA[alert("oncomplete");]]></xp:this.onComplete>-->
        </xp:eventHandler>
    </xp:button>

dojo.connect非常適合onclick -Event,但不適用於onComplete -Event?

預先感謝您的任何答復。

盡管onclick是一個真實的瀏覽器事件(可以與dojo關聯),但是oncomplete事件僅由XPages的XSP對象提供。

查看生成的HTML代碼(未注釋示例的onComplete事件)時,可以看到將其代碼轉換為字符串(第二個參數是最后一個參數):

XSP.attachPartial("view:_id1:_id2", "view:_id1:btnSubmit", null, "onclick", function(){}, 2, "@none", null, "alert\u0028\u0022oncomplete\u0022\u0029;", null);

XSP._partialRefresh方法完成時,將評估此字符串。

這就是為什么您不能在此處使用dojo.connect的原因。

我看不到為什么需要使用dojo.connect將函數附加到onclick和onComplete事件。

只需將函數callbackOnClickcallbackOnComplete放在xp:eventHandler對應的方法中。

暫無
暫無

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

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