質問

リスト項目のタイトルをクリックすると、編集フォームを開く、ビューフォームではありません。これを行うために私はCSRを使うことを選びました。

次のコードがあります。

(function () {
    var statusFieldCtx = {};

    statusFieldCtx.Templates = {};
    statusFieldCtx.Templates.Fields = {
        "Title": {"View": DataFieldViewTemplate},

    };

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(statusFieldCtx);
})();

function DataFieldViewTemplate(ctx) {       
    var data = ctx.CurrentItem.Title;
    console.log(data);      
}
.

しかし、私はブラウザコンソールには何も見えません。コードを変更すると、これが機能しますが、タイトル列は存在しません。

これは私の編集コードです:

(function () {
    var statusFieldCtx = {};

    statusFieldCtx.Templates = {};
    statusFieldCtx.Templates.Fields = {
        "dt_x0020_proximo_x0020_contato": {"View": DataFieldViewTemplate},

    };

    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(statusFieldCtx);
})();

function DataFieldViewTemplate(ctx) {       
    var data = ctx;
    console.log(data);      
}
.

私の質問は次のとおりです。 コードにエラーがありますか? 私が別の方法で欲しいものをやることができますか?

役に立ちましたか?

解決

LinkTitleフィールド - Title (linked to item with edit menu)をカスタマイズしようとしているようですが、Titleフィールドではありません。

次の例では、表示フォームの代わりにフォームを編集するために設定されたURLを使用してLinkTitleをレンダリングする方法を示します。

(function () {


   function titleRenderer(renderCtx) {
       var item = ctx.CurrentItem;
       return '<a class="ms-listlink" onfocus="OnLink(this)" href="' + renderCtx.editFormUrl + '" onclick="EditLink2(this,' + renderCtx.ListTemplateType + ');return false;" target="_self">' + item.Title + '</a>';  
    }


    function registerRenderer()
    {
      var ctxTitleField = {};
      ctxTitleField.Templates = {};
      ctxTitleField.Templates.Fields = {
        "LinkTitle": {
            "View": titleRenderer
        }
      };

      SPClientTemplates.TemplateManager.RegisterTemplateOverrides(ctxTitleField);
    } 
    ExecuteOrDelayUntilScriptLoaded(registerRenderer, 'clienttemplates.js');

})();
.

他のヒント

これを適用しようとするビューのタイトルフィールドは?実際にはタイトルフィールドの多数の亜種が存在します(たとえば、(...)メニューで)。

または2番目のコードスニペットのCTX.CurrentItemから取得した情報を使用して、別のプロパティがないかどうかを確認する

ライセンス: CC-BY-SA帰属
所属していません sharepoint.stackexchange
scroll top