0

我試圖把自定義JavaScript變量或函數到SharePoint的列表視圖頁面,CAML查詢中,使用SharePoint DesignerSharePoint列表視圖頁面上使用CAML查詢中的JavaScript變量或函數與SharePoint設計

例如:

我是我想修改的打開列表視圖。比我還添加自定義JavaScript代碼,這將在頁面加載執行,我想利用價值,從這個函數返回的,CAML查詢中:

<View Name="{SOMENAME}" MobileView="TRUE" Type="HTML" DisplayName="MyGroups" Url="SOMEURL" Level="1" BaseViewID="2" ContentTypeID="0x" ImageUrl="/_layouts/15/images/issuelst.png?rev=23" > 
      <Query> 
       <OrderBy> 
        <FieldRef Name="ID" Ascending="FALSE"/> 
       </OrderBy> 
       <Where> 
        <Eq> 
         <FieldRef Name="Group_x0020_Name"/> 
         <Value Type="Text">BPA</Value> 
        </Eq> 
       </Where> 
      </Query> 
      <ViewFields> 
       <FieldRef Name="LinkTitle"/> 
      </ViewFields> 
      <RowLimit Paged="TRUE">10</RowLimit> 
      <Aggregations Value="Off"/> 
      <JSLink>clienttemplates.js</JSLink> 
      <XslLink Default="TRUE">main.xsl</XslLink> 
      <Toolbar Type="Standard"/> 
     </View> 

,所以我希望把變量或函數在這裏:

<FieldRef Name="Group_x0020_Name"/> 
<Value Type="Text">HERE VARIABLE OR JAVASCRIPT</Value> 

可能嗎?

+0

請至少答案,如果有可能 – wol

+0

ListView中的頁面(在網站,而不是SPD) - >編輯頁面 - >添加腳本的Web部件,有你的代碼粘貼到負載等 – WantToDo

+0

是的,我可以粘貼代碼,但如何將所需的變量傳遞給列表視圖? – wol

回答

0

here是偉大的文章。但是我現在正在修補的是,無法從視圖中正確刪除額外的項目。例如:

(function() { 
function listPreRender(renderCtx) { 
    var rows = renderCtx.ListData.Row; 
    var i = rows.length; 
    while (i--) { 
     var del = rows[i]['Group_x0020_Name'] === 'BPA'; 
     if (del) { 
      rows.splice(rows[i], 1); 
     } 
    } 
    renderCtx.ListData.LastRow = rows.length; 
} 
function registerListRenderer() { 
    var context = {}; 
    context.Templates = {}; 
    context.OnPreRender = listPreRender; 
    SPClientTemplates.TemplateManager.RegisterTemplateOverrides(context); 
} 
ExecuteOrDelayUntilScriptLoaded(registerListRenderer, 'clienttemplates.js'); 
})(); 

有時從視圖中刪除項目有時沒有。儘管事實上沒有顯示任何項目,但列過濾器仍然可見。這裏是圖像link