1

JSLink を使用して、SharePoint 表示リストをカスタマイズしています。

次のリンクでわかるように、データをフィルタリングすることができました。

https://sharepoint.stackexchange.com/questions/91317/filter-out-items-in-list-view-using-jslink

列のタイトルをクリックして 2 回目のデータのフィルター処理を試みると、以前にフィルター処理されたデータが並べ替えられるのではなく、古いデータがすべて体系的に返されます。

4

1 に答える 1

2

提供された例では、フィルターは行インデックスによって適用されます。これは、並べ替えが適用される前後で異なる行が表示される理由を説明しています。

以下の例は、リスト項目 idによって行を非表示にする方法を示しています。この場合、フィルターは同じ行に一貫して適用されます。

(function () {

   function listPreRender(renderCtx) {

         var excludeItemIds = [1];  //hide list item with Id=1

         var rows = renderCtx.ListData.Row; //get current rows
         var filteredRows = rows.filter(function(row){
            var curItemId = parseInt(row.ID); 
            if(excludeItemIds.indexOf(curItemId) === -1)
                return row;                
         });

         renderCtx.ListData.Row = filteredRows;
         renderCtx.ListData.LastRow = filteredRows.length;  //update ListData.LastRow property
   }


    function registerListRenderer()
    {
      SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
          Templates : {
            OnPreRender : listPreRender
          }
      });
    } 
    ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js');

})();

結果

フィルタされたリスト ビュー

ここに画像の説明を入力

並べ替えを適用した後のフィルター処理されたリスト ビュー

ここに画像の説明を入力

于 2015-05-13T14:09:59.443 に答える