0

I have a submit button on top that's normally doing a partial refresh of the form.

When I added a fileUpload control that won't due, as I need to do a full refresh. But I only wish this to happen if the user has added a file to be uploaded. So if the file Upload is empty I want to use a partialRefresh to submit.

I can check if a file is added easily enough and I could have two buttons with different refresh modes and hide them using JS, but that's a clunky solution.

What I would like to do is change the refresh mode on the submit button depending on a submitted value in the current form.

Any ideas?

Thanks!

/J

4

2 に答える 2

6

ボタンに 2 つ目のイベント ハンドラーを追加することで、これを行うことができます。1 つのイベント ハンドラーは完全な更新用で、もう 1 つは部分的な更新用です。

<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">

   <xp:div id="divRefresh">
      <xp:label value="#{javascript:java.lang.System.currentTimeMillis()}" id="label1" />
      <xp:label value="#{javascript:java.lang.System.currentTimeMillis()}" id="label2" />
   </xp:div>

   <xp:br></xp:br>

   <xp:button value="Refresh" id="button1">
      <xp:eventHandler event="onclick" submit="true"
         refreshMode="complete">
            <xp:this.script>
               <![CDATA[alert("Complete!"); return false;]]>
            </xp:this.script>
      </xp:eventHandler>
      <xp:eventHandler event="onclick" submit="true"
         refreshMode="partial" refreshId="label2">
            <xp:this.script>
               <![CDATA[alert("Partial!");return true;]]>
            </xp:this.script>
      </xp:eventHandler>
   </xp:button> 

</xp:view>

イベントの CSJS コードは、イベントを停止するために false を返す必要があります。

于 2012-11-22T07:57:06.440 に答える
1

新しいストリーム コンテンツを投稿するときに、 http://www.intrapages.comでこれを行います。

アップロード コントロールの onchange イベントで、requestScope 変数を設定しました。それが設定されている場合は、完全な更新を実行します。よく働く

ここに画像の説明を入力

于 2012-11-22T08:21:24.927 に答える