問題タブ [custom-renderer]
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.
ajax - JSF レンダラーに ajax 動作を追加する
データテーブルのページネーション コンポーネントをレンダリングするカスタム JSF コンポーネント レンダラーがありますが、ajax の動作はありません。encoding メソッドに ajax を挿入するか、f ajax タグをサポートすることで実現できることがわかりました。残念ながら、私は ajax にあまり詳しくないので、このコードを ajax 対応にするためにどのように変更すればよいか教えていただけますか?
public class PagerRenderer extends Renderer {
ajax - カスタム レンダラーが ajax イベントのリスナーをトリガーしない
こんにちは、JSF達人です。
カスタム レンダラーと ajax ハンドラーに関するヘルプを探しています。私たちのプロジェクトでは、通常のラジオ ボタンとチェック ボックスのレンダラーをテーブルでレンダリングするため使用できません。これは会社の基準に反しています。サードパーティのコンポーネント ライブラリも使用できません。
いくつかのプロジェクトで使用したカスタム レンダラーが正常に動作するようになりました。ただし、この特定のプロジェクトでは、いくつかのラジオ ボタンの ajax クリック ハンドラーをレンダリングする必要があります。この質問への回答のアドバイスに従って、呼び出しを追加しRenderKitUtils.renderSelectOnclick();
、標準レンダラーと同じ JavaScript をレンダリングするように見えますが、実際には、firebug ネットワーク パネルに送信要求が表示されますが、値変更リスナーが起動されず、私は理由についてのヘルプを探しています (標準のレンダラーで問題なく動作します)
いくつかのコード: まず、ajax ハンドラーの作成 (ラジオ ボタンはプログラムで作成されます)
標準のレンダラーでは、次のものが生成されます。
そしてすべてが順調です。ajax リクエストが送信され、サーバー側のリスナーが起動します。
カスタム レンダラーの関連部分:
更新:私のレンダラーの基本クラスのデコード メソッドは次のとおりです。
これは次のようにレンダリングされます。
ご覧のとおり、input タグの name および id 属性値と同様に、javaScript クリック ハンドラーは同一です。これにより Ajax リクエストがトリガーされますが、リスナーは最初のバージョンのようにサーバー側で起動されません。
何か案は ?
android - カスタム レンダラーを使用して Xamarin.Forms ビューを強制的に再描画する
MyButton
iOS 用にカスタム レンダラーが実装されたビジュアル要素があります。
共有:
iOS:
ボタンを押すと、赤い境界線が青くなるはずです。どうやらレンダラーは変更されたプロパティに気付いていないようです。再描画をトリガーするにはどうすればよいですか?
(この例は iOS 用ですが、私の質問は Android にも当てはまります。)
jsf - f:attribute コンポーネントを使用して、独自のレンダラーを持たないコンポーネントに属性を追加するにはどうすればよいですか?
コンポーネント用のカスタム レンダラーを作成しh:selectOneMenu
、最終的にクラスのdescription
プロパティを利用して、 https ://stackoverflow.com/a/25512124/3280015およびhttp://baluscにある BalusC の詳細なガイドに従うための別名ツールチップを追加したいと考えています。 .blogspot.de/2008/08/styling-options-in-hselectonemenu.html .UISelectItem
title
f:selectItems
com.sun.faces.renderkit.html_basic.MenuRenderer
ここで、 を自分で拡張しCustomMenuRenderer
、 に登録してメソッドfaces-config.xml
をオーバーライドし、renderOption
オプション タグが で終了する前に次のコードを追加しましたResponsewriter
。
optionClasses チュートリアルのようなリストがないため、正しいことを行っているのindexKey
か、title 属性に必要なのか、代わりに a を使用する必要があるのか はよくわかりませんが、コードはこれまでのところ機能しています!writer.writeAttribute("title", titleAttributeValue, null);
実際のビュー定義のユースケースでは、次のことを行いました。
(意図を明確にするためにタイトルの値にそこを入れただけ#{val.description}
です。現在はまだ空であり、後で要素ごとに入力する方法を考える必要がありますが、質問のために、既に入力されていると想定できます。 )
しかし、今"outerTEST"
では、ブラウザで結果として得られる XHTML のオプションのタイトル属性に適切に表示されていますが、"innerTEST"
個別に表示されるべきであり、個別に表示されるべきでありselectItem
、最終的にはこれがすべてです。 .
f:selectItem
およびf:selectItems
コンポーネントには独自のレンダラーがないことは理解していますが、オプションのレンダリングは通常、そのメソッドMenuRenderer
を介してによって処理されます。renderOption
しかし、個々のタイトルを個々の selectItems に追加するにはどうすればよいでしょうか??
ありがとう