Sharepoint 列表将图标添加到已修改的项目
Sharepoint list add icon to modified item
我正在使用此 caml 查询 select 最近修改过的共享点列表中的所有项目。
现在我想在标题中添加某种图标作为该项目已修改的标识符。有点像 sharepoint 使用的 new.png。
<Where>
<Gt>
<FieldRef Name='Modified' />
<Value Type='DateTime'>
<Today Offset='-7' />
</Value>
</Gt>
</Where>
更新:
有人有这方面的例子吗?
马可
在您的列表视图中显示修改,然后在 csr 中 select 符合条件的项目并添加图标。
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script>
(function () {
var overrideCurrentContext = {};
overrideCurrentContext.Templates = {};
overrideCurrentContext.OnPostRender = renderItem;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCurrentContext);
})();
function renderItem() {
var rows = ctx.ListData.Row;
for (var i = 0; i < rows.length; i++) {
var Modified = rows[i]["Modified"];
console.log(Modified)
var SevenDaysAgo= new Date(new Date().getTime()-24*60*60*1000*7);
if(SevenDaysAgo.getTime()<new Date(Modified).getTime()){
var rowId = GenerateIIDForListItem(ctx, rows[i]);
var row = document.getElementById(rowId);
$(row).find("td>div[field='LinkTitle']").append("<img src='http://sp/Shared%20Documents/download.png'/>");
}
}
ctx.skipNextAnimation = true;
}
</script>
测试结果:
更新:
我终于明白了。我列表中的日期混淆了月份和日期,即使它显示正确。所以我添加了一些代码来提取日、月和年,并将它们放回原处作为 javascript 的正确日期。唯一剩下的问题是为什么它不像 AMOS_MSFT 建议的那样工作?
var xDate = Modified.split(" ")[0];
var xDateParts = xDate.split("-");
var xYear = xDateParts[2];
var xMonth = xDateParts[1]-1;
var xDay = xDateParts[0];
var dDate = new Date(xYear, xMonth, xDay);
if(new Date(dDate).getTime()>SevenDaysAgo.getTime()){......
有人了解 SharePoint 中的这种行为吗?
我正在使用此 caml 查询 select 最近修改过的共享点列表中的所有项目。 现在我想在标题中添加某种图标作为该项目已修改的标识符。有点像 sharepoint 使用的 new.png。
<Where>
<Gt>
<FieldRef Name='Modified' />
<Value Type='DateTime'>
<Today Offset='-7' />
</Value>
</Gt>
</Where>
更新:
马可
在您的列表视图中显示修改,然后在 csr 中 select 符合条件的项目并添加图标。
<script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
<script>
(function () {
var overrideCurrentContext = {};
overrideCurrentContext.Templates = {};
overrideCurrentContext.OnPostRender = renderItem;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCurrentContext);
})();
function renderItem() {
var rows = ctx.ListData.Row;
for (var i = 0; i < rows.length; i++) {
var Modified = rows[i]["Modified"];
console.log(Modified)
var SevenDaysAgo= new Date(new Date().getTime()-24*60*60*1000*7);
if(SevenDaysAgo.getTime()<new Date(Modified).getTime()){
var rowId = GenerateIIDForListItem(ctx, rows[i]);
var row = document.getElementById(rowId);
$(row).find("td>div[field='LinkTitle']").append("<img src='http://sp/Shared%20Documents/download.png'/>");
}
}
ctx.skipNextAnimation = true;
}
</script>
测试结果:
我终于明白了。我列表中的日期混淆了月份和日期,即使它显示正确。所以我添加了一些代码来提取日、月和年,并将它们放回原处作为 javascript 的正确日期。唯一剩下的问题是为什么它不像 AMOS_MSFT 建议的那样工作?
var xDate = Modified.split(" ")[0];
var xDateParts = xDate.split("-");
var xYear = xDateParts[2];
var xMonth = xDateParts[1]-1;
var xDay = xDateParts[0];
var dDate = new Date(xYear, xMonth, xDay);
if(new Date(dDate).getTime()>SevenDaysAgo.getTime()){......
有人了解 SharePoint 中的这种行为吗?