这个 js link 代码有什么问题?该数组应该显示它的数据,但它给出了未定义的。我想在两列中显示数据
what is wrong with this js link code? the array should show its data but it gives undefined. I want to display data in two columns
(function () {
var itemCtx = {};
itemCtx.Templates = {};
itemCtx.Templates.Header = "<div><b>Announcements</b></div><table>";
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = "</table>";
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);
})();
function ItemOverrideFun(ctx) {
var _announcementTitle = ctx.CurrentItem.Title;
var _announcementID = ctx.CurrentItem.ID;
return "<tr><td><p><b>" + _announcementTitle + "</b></p></td></tr>";
}
---使用此代码 m 逐行获取值,如下所示:
1)现在就预订你的暑假
2)我们被评为卓越服务
3)Ancmnts
4)XYX
----但我需要将它并排显示为
1) 立即预订您的暑假 2) 我们被评为卓越服务
3) 坐标 4) XYZ
所以我对代码进行了一些更改并为其使用了一个数组,现在我将格式设置为两列,但我没有获取数据,因为数组值显示为未定义。
(function() {
var itemCtx = {};
itemCtx.Templates = {};
enter code here
itemCtx.Templates.Header = "<div><b>Announcements</b></div>";
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = "</table>";
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);
})();
function ItemOverrideFun(ctx) {
var _announcementTitle = ctx.CurrentItem.Title;
var _announcementID = ctx.CurrentItem.ID;
var myArray = new Array();
for (var i = 0; i < 5; i++) {
myArray[i] = _announcementTitle;
}
return "<table><tr><td><p><b>" + myArray[i] + "</b></p></td><td><p><b> " + myArray[i + 1] + "</p></b></td></tr></table>";
}
数组值没有以正确的方式出现,它显示 undefined 而不是它的值。
结果:
Announcements
undefined undefined
undefined undefined
undefined undefined
我想您需要水平呈现公告列表中的列表项,对吗?
以下示例演示如何完成它:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
View: renderAnnouncementsView
},
ListTemplateType: 104
});
});
function renderAnnouncementsView(rCtx)
{
var listData = rCtx.ListData;
var viewHtml ='';
viewHtml = '<table><tr>';
for (var idx in listData.Row) {
var listItem = listData.Row[idx];
viewHtml += '<td>';
viewHtml += listItem.Title;
viewHtml += '</td>';
}
viewHtml += '</tr></table>';
return viewHtml;
}
(function () {
var itemCtx = {};
itemCtx.Templates = {};
itemCtx.Templates.Header = "<div><b>Announcements</b></div><table>";
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = "</table>";
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);
})();
function ItemOverrideFun(ctx) {
var _announcementTitle = ctx.CurrentItem.Title;
var _announcementID = ctx.CurrentItem.ID;
return "<tr><td><p><b>" + _announcementTitle + "</b></p></td></tr>";
}
---使用此代码 m 逐行获取值,如下所示:
1)现在就预订你的暑假
2)我们被评为卓越服务
3)Ancmnts
4)XYX
----但我需要将它并排显示为
1) 立即预订您的暑假 2) 我们被评为卓越服务
3) 坐标 4) XYZ
所以我对代码进行了一些更改并为其使用了一个数组,现在我将格式设置为两列,但我没有获取数据,因为数组值显示为未定义。
(function() {
var itemCtx = {};
itemCtx.Templates = {};
enter code here
itemCtx.Templates.Header = "<div><b>Announcements</b></div>";
itemCtx.Templates.Item = ItemOverrideFun;
itemCtx.Templates.Footer = "</table>";
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(itemCtx);
})();
function ItemOverrideFun(ctx) {
var _announcementTitle = ctx.CurrentItem.Title;
var _announcementID = ctx.CurrentItem.ID;
var myArray = new Array();
for (var i = 0; i < 5; i++) {
myArray[i] = _announcementTitle;
}
return "<table><tr><td><p><b>" + myArray[i] + "</b></p></td><td><p><b> " + myArray[i + 1] + "</p></b></td></tr></table>";
}
数组值没有以正确的方式出现,它显示 undefined 而不是它的值。
结果:
Announcements
undefined undefined
undefined undefined
undefined undefined
我想您需要水平呈现公告列表中的列表项,对吗?
以下示例演示如何完成它:
SP.SOD.executeFunc("clienttemplates.js", "SPClientTemplates", function() {
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
View: renderAnnouncementsView
},
ListTemplateType: 104
});
});
function renderAnnouncementsView(rCtx)
{
var listData = rCtx.ListData;
var viewHtml ='';
viewHtml = '<table><tr>';
for (var idx in listData.Row) {
var listItem = listData.Row[idx];
viewHtml += '<td>';
viewHtml += listItem.Title;
viewHtml += '</td>';
}
viewHtml += '</tr></table>';
return viewHtml;
}