問題タブ [rerender]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
16128 参照

jsf - selectBooleanCheckbox による JSF ReRender のサポート

クリックすると、ページから他の特定のフォームフィールドを追加/削除するチェックボックスが必要なJSFページがあります。チェックボックス用に現在持っている(簡略化された)コードは次のとおりです。

非表示にしたいコンポーネントのコードは次のとおりです。

現在、チェックボックスをクリックしても何も起こりません。その「selectOneMenu」はなくなりません。私は何を間違っていますか?

0 投票する
4 に答える
16178 参照

jsf - RichFaces を使用した絶対再レンダリング

私の問題は、要素ツリーの現在の要素の下で RichFacesreRenderが機能しないことです。上位要素のみが再レンダリングされます。

AJAXで下位要素にアクセスする方法はありますか?

どんな助けでも大歓迎です!ダニエル

編集この質問をより一般的な質問に編集しました。元の質問に興味がある場合は、リビジョンを参照してください。

0 投票する
1 に答える
865 参照

jquery - a4j:repeat-新しい要素を動的に追加する

ユーザーがメッセージを投稿できる機能を(より大きなシステムの一部として)実装しようとしています。ユーザーが投稿ボタンをクリックすると、RichFacesとa4jを使用して、ajaxを使用して生成された投稿を取得しています。

応答が返されたらすぐに投稿が自動的に表示されないようにしたいと思います。むしろ、非表示のdiv内に出力パネルを追加したいと思います。ユーザーが投稿ボタンをクリックすると、その出力パネルにデータが入力されますが、ユーザーには明らかに表示されません。

後でやりたいのは、jQueryを使用して、新しい要素を非表示のdivから正しい位置に移動することです。

とにかく、ここでの問題は、a4j:repeatのajaxKeysプロパティを使用して、アクションが実行されたときに単一の行を更新していることです。たとえば、誰かが行に5の評価を付けた場合、(サーバー側で正しいキーを設定することにより)その行のみを再レンダリングしたいと思います。

この方法を使用すると、ajaxで作成された要素を他の投稿の横に移動することは最初は正常に機能しますが、ユーザーがその行に対してアクションを実行した場合、a4j:repeatが指定された要素で機能するとは思われませんそれ自体は生成しませんでした。

これは正しいです?もしそうなら、誰かが提案できる回避策はありますか?

Facebookも同様のことを実現できます。投稿を作成または削除したり、投稿にコメントしたりして、そのオブジェクトのみを更新することができます。私は、a4j:repeatがこの問題に取り組む最良の方法ではないかもしれないと考え始めています。考え?

0 投票する
1 に答える
2419 参照

css - JSF dataTable 再レンダリングで CSS スタイルが失われる

通常の (非 ajax) 要求/応答サイクルを介してレンダリングされたときに、必要に応じて機能する dataTable があります。

テーブルの最初の行に背景色とパディングを適用するスタイルが定義されています。

上で述べたように、パディングと背景色は、典型的なリクエスト/レスポンスを介して読み込まれると完全に表示されます。ただし、このテーブルが AJAX 経由で再レンダリングされる原因となるアクションがいくつかあります。その場合、テーブルは正しく再読み込みされます (データです) が、上記のスタイルは再適用されません。

dataTable コンポーネントを使用する場合、最初の行に CSS クラスを明確に割り当てる方法がないためです。そこで、上記の CSS セレクターを使用して最初の行を取得しました。これまでにこのような問題に対処したことのある人はいますか? ALL の oncomplete で jQuery を試して使用する唯一のオプションはありますか?これは多くの異なる場所である可能性があります...テーブルの再レンダリングをトリガーできるアクションですか?

私の問題は、速度のためにリッチフェイステーブルコンポーネントの使用を避けようとしており、テーブルをスクロール可能にする必要があることです。そのため、ブラウザー固有の CSS ソリューションを使用して、テーブル本体を srcoll し、ヘッダーを静的に保ちます。主なハングアップは、テーブルの最初の行に、テーブル ヘッダーの固定位置より下に押し下げるトップ パディング値が必要なことです。

0 投票する
2 に答える
1082 参照

jsf - JSF: dataTable にコンバーターがある inputText 問題

カスタマイズされたコンバーターを使用して、h:dataTable のセルに ah:inputText を作成します。テーブル全体を再レンダリングすると、入力テキストを変換でき、変換されたテキストを表示できます。

問題は、テーブル全体を再表示すると、次の入力ボックスのフォーカスが解放されることです。わかりやすく説明するようにしています。

私が抱えている問題:

  1. テーブル セル内のユーザー入力データ。
  2. ユーザーがタブ キーを押して、テーブル内の次の入力ボックスにジャンプします。
  3. 一方、入力したテキストはすぐに変換されて表示されます。
  4. しかし、テーブル全体が再レンダリングされるため、ユーザーは次の入力ボックスのフォーカスを失いました。

私が欲しいのは:

  1. テーブル セル内のユーザー入力データ。
  2. ユーザーがタブ キーを押して、テーブル内の次の入力ボックスにジャンプします。
  3. 一方、入力したテキストはすぐに変換して表示する必要があります。
  4. ユーザーは、次の入力ボックスのフォーカスを失うべきではありません (おそらく、部分的な再レンダリングを使用します)。

また、部分的な再レンダリングのためにすべてのセルに id を割り当てようとしていますが、dataTable でこれを行う方法がわかりません。

誰でも問題を解決するための解決策を持っていますか? ありがとう。

0 投票する
2 に答える
800 参照

jsf - JSF/Richfaces/A4j ==> コンポーネント/フィールドの変換と再レンダリングの問題

次のような JSF ページに入力フィールドがあります (バッキング Bean の BigDecimal にマップされます)。

そして、ページ上のデータベースからすべてのデータを「更新」するための a4j:commandButton:

私の問題を再現する手順は次のとおりです。 a4j:support に reRender 属性が設定されているかどうかに関係なく、エラーが発生することに注意してください。

再現する手順は次のとおりです-さらに明確にするために:

  1. BigDecimal 入力フィールドが存在する画面に移動します
  2. フィールドに aa と入力します (数字である必要がありますが、意図的に数字以外の文字を入れてください)。
  3. フィールドから離れたタブ
  4. エラーが報告されることに注意してください 'aa' is not a valid netVolume
  5. リセットボタンをクリック
  6. 数値以外のデータが入力されたものを除いて、変更されたすべてのフィールドが元の値になります。
  7. ユーザーがフィールド内の数値以外のデータを手動で削除するか、画面全体を更新しない限り、「不良データ」が残る
0 投票する
1 に答える
672 参照

apache-flex - FlexDataGridレンダリングの開始

いくつかの列がlabelFunctionを持つことができるDataGridがあります。labelFunctionの結果の性質は、問題のある形で変わる可能性があります(たとえば、フォーマットの適用、フォーマットのバイパス)。

新しいデータを取得するためにlabelFunctionが再度実行されるように、DataGridに表示されているアイテムを再レンダリングさせるにはどうすればよいですか。

invalidateDisplayList、validateNowを試し、DataGridにResizeEventsをディスパッチしてみました。失敗。

0 投票する
1 に答える
2307 参照

jsf - h:selectOneMenu ラベルが a4j 再レンダリングで変更されない

次のような h:selectOneMenu をセットアップしました。

新しいアイテムを作成するとき、新しいアイテムはドロップダウンに表示されますが、アイテムの「名前」属性を変更して保存すると、ラベルは次のリクエストの後まで新しい名前に変更されません。 Bean のデータが変更されました。

そのため、変更の保存が完了したら、2 回目の呼び出しを強制的に再レン​​ダリングすることで回避しました。問題は、これによりメッセージ パネルも再レンダリングされるため、表示された可能性のあるメッセージを削除することです。で使用limitToList="true"すると、a4j:jsFunction呼び出さないのと同じ効果があります。

提案が必要です。rerender 関数の新しいターゲット、または問題にアプローチする別の方法のいずれかです。前もって感謝します!

0 投票する
2 に答える
1317 参照

javascript - window.onloadは、richfacesでの再レンダリングによってトリガーされませんか?

Webサイトには、ページが読み込まれたときや、コードの周囲の領域が再レンダリングされたときにjavascriptコードを実行したい場所がたくさんあります。

ほとんどのコードは、div内に存在するメニューやスライダーなどの初期化コードです。

これらのコードスニペットを処理するには、window.onloadイベントに関数呼び出しを追加します。

これはページの読み込みには問題なく機能しますが、領域を再レンダリングすると、window.onloadイベントがトリガーされません...さまざまなブラウザーでこれを試しましたが、成功しませんでした。

再レンダリングの原因となる要素のoncompleteはいたるところにあるため、使用できません。また、コンポーネントの実装について実際に知っている必要はありません。

これを解決する方法はありますか?

0 投票する
1 に答える
2354 参照

java - javascript コマンドでフィールドを再レンダリングする

私は2つのフィールドを持っています。1 つは、場所のリストを含む ah:selectOneMenu です。もう 1 つは ah:inputText です。

私がやろうとしているのは、ユーザーが selectOneMenu で場所を選択して検索をクリックすると、その場所が検索されるということです。彼が selectOneMenu で場所を選択し、inputText で別の場所を入力して検索をクリックすると、選択された場所ではなく、書かれた場所が検索されます。

したがって、ユーザーが入力テキストに何かを入力すると、selectOneMenu が無効になり、フィールドをクリアすると、再び有効になります。イベントでjavascriptを試しました

onchange="if (this.value !='') document.getElementById('placeSelectOneMenu').disabled='true'"

しかし、うまくいきませんでした。私に何ができる?何か案は?

フィールドを正しく再レンダリングするよりも、検索をクリックしたときにのみ機能します。私が欲しいのは、動的に再レン​​ダリングすることです。