JSLink Override Fields - TDを制御できますか?
質問
外部リストを持っています、私はフィールドを使ってフィールドを修正しています。
基本的にこれはTD内のテキストを変更します(下記のコードを参照)
<td class="ms-cellstyle ms-vb2">Rep Job</td>
<td class="ms-cellstyle ms-vb2">517951</td>
<td class="ms-cellstyle ms-vb2">10008</td>
<td class="ms-cellstyle ms-vb2">0</td>
.
TDにアクセスできるようにするために知りたいのですが、クラス値を変更して新しいスタイルを追加することができます。
基本的には、私が変更できるものと私ができないもののリストビューの上のJSlinkの制限を把握しようとしています。
ありがとう!
編集:jQueryを使うことができるだけで、ページ上のコントロールを変更することができます。私が使用できる「ポストレンダリング」種類のイベントがあるかどうか疑問に思うだけですか?
解決
編集:jQueryを使うことができるだけでコントロールを変更することができます ページ。「ポストレンダリング」種類のイベントがあるかどうか疑問に思う 使用できる?
はい、JSLinkを使用しているときに利用可能なPOSTレンダリングオブジェクトがあります。
例:
.var YourNameSpace = YourNameSpace || {}; YourNameSpace.SomeCustomRendering = function() { var overrideCtx = {}; overrideCtx.OnPostRender = YourNameSpace.postRenderHandler; SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx); } YourNameSpace.postRenderHandler = function(ctx) { // some code }
他のヒント
標準後のレンダリングイベントは$(文書).ready()です。 SharePointを使用すると、SharePointでは、$がデフォルトで他のものを意味するため、jQuery(Document).ready()が必要です。
クラスの変更については、jQueryには.addclass()および.removeclass()メソッドがあります。
最良の部分は、コンテンツエディタのWebパーツを使用してページ上にjQuery、JavaScript、またはスタイルコードを適切にすることができ、マスターページテンプレートによってレンダリングされた部分でさえもページのどの部分にも機能します。注意深く、この方法でページを折ることができます。)フルサイトブランディングと機能へのアクセスを与えられていない場合は、これを使用しました。
また、SPServices JQuery Library http://spservices.codeplex.com/ /
私は同様の問題に取り組んでいて、私が投稿したコードを見つけるかもしれません。
renderctx.listschema.fieldオブジェクトを 'Hack'を 'Hack' 'Hack'を呼び出す前に、RenderCtxオブジェクトを変更できることがわかりました。
私の場合私はコレクションから全体のフィールドを削除し、RenderBodyTemplate(RenderCtx)を呼び出した後に戻してくださいが、必要な値を設定するために同じフックが見つかるかもしれません。