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