トップ回答者
ライブラリに対してのJSリンク

質問
-
SharePointOnlineを使用しています。
カスタムリストに集計値列を追加し、その中身がAなら赤色に表示するように、JSリンクを挿入して、実装しています
しかし、カスタムリストにはJSリンクは有効になるのですが、ライブラリに適応しても色が変わらないのですが、ライブラリには不可なのでしょうか?
内部列名も変更しています。
よろしくお願いします。
- 編集済み Mr.sharePoint_Beginner 2018年2月16日 3:54
回答
-
なるほどー。
overrideCtx.ListTemplateType = 100;
があるので、元の書き方だと「このスクリプトはカスタムリストの時だけ動かしますよ」という意味になっていたんですね。
「新規」以外の処理を書くのであれば、条件文を追加する必要があるかと思います。
if(orgVal == '新規'){ retVal = '<b style="color:#FF0000">' + orgVal + '</b>'; }else{ retVal = orgVal; }
として、「新規」以外の場合は、もともと入っていた文字をそのまま書き出すように書けば良さそうに思えます。
- 編集済み OTA HirofumiMVP 2018年2月19日 6:01
- 回答としてマーク Mr.sharePoint_Beginner 2018年2月20日 2:29
すべての返信
-
今までカスタムリストに使用していたのが以下の文
(function(){
var overrideCtx = {};
overrideCtx.Templates = {};
overrideCtx.ListTemplateType = 100;
overrideCtx.BaseViewID = 1;
overrideCtx.Templates.Fields = {
'_x66f4__x65b0_': { 'View' : Color }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
function Color(ctx){
var retVal;
var orgVal = ctx.CurrentItem._x66f4__x65b0_;
if(orgVal == '新規'){
retVal = '<b style="color:#DA4F49">' + orgVal + '</b>';
}
return retVal;
}
})();ライブラリ用に変更したのが以下の文です。
overrideCtxの先頭にdocを入れることによってできるようになりました。
しかし、ここで言うところの新規以外のワードが入った場合は、文字色が透明になってしまうのは解決できていません。
(function(){
var docoverrideCtx = {};
docoverrideCtx.Templates = {};
docoverrideCtx.Templates.Fields = {
'_x66f4__x65b0_': { 'View' : Color }
};
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(docoverrideCtx);
function Color(ctx){
var retVal;
var orgVal = ctx.CurrentItem._x66f4__x65b0_;
if(orgVal == '新規'){
retVal = '<b style="color:#FF0000">' + orgVal + '</b>';
}
return retVal;
}
})(); -
なるほどー。
overrideCtx.ListTemplateType = 100;
があるので、元の書き方だと「このスクリプトはカスタムリストの時だけ動かしますよ」という意味になっていたんですね。
「新規」以外の処理を書くのであれば、条件文を追加する必要があるかと思います。
if(orgVal == '新規'){ retVal = '<b style="color:#FF0000">' + orgVal + '</b>'; }else{ retVal = orgVal; }
として、「新規」以外の場合は、もともと入っていた文字をそのまま書き出すように書けば良さそうに思えます。
- 編集済み OTA HirofumiMVP 2018年2月19日 6:01
- 回答としてマーク Mr.sharePoint_Beginner 2018年2月20日 2:29