我试图实现一个FAQ手风琴SharePoint列表。在使用JSLink时,我设法让手风琴工作。不幸的是,搜索工作没有正常进行。我在我的JSLink js中使用了以下代码:
(function () {
/*
* Initialize the variable that store the overrides objects.
*/
var overrideCtx = {};
overrideCtx.Templates = {
Header: function(ctx) {
var headerHtml = RenderTableHeader(ctx);
headerHtml += "</table>";
headerHtml += "<div id='accordion'>";
return headerHtml;
},
Footer: function (ctx) {
return "</div>";
},
Item: function(ctx) {
// Build a listitem entry for every announcement in the list.
var ret = "<h3 class='OutlookFAQ'>"+ctx.CurrentItem.Title+"</h3><div style='display:none;' class='OutlookFAQContent'><p>"+ctx.CurrentItem.Answer+"</p></div>";
return ret;
}
};
overrideCtx.BaseViewID = 1;
overrideCtx.ListTemplateType = 100;
overrideCtx.OnPostRender = [];
overrideCtx.OnPostRender.push(function()
{
$('#accordion h3').click(function(e) {
$(e.target).next('div').siblings('div').slideUp();
$(e.target).next('div').slideToggle();
});
});
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(overrideCtx);
})();当我难过的时候,手风琴在工作,搜索箱正在显示。如果我试图提交搜索,将弹出一个JS错误"TypeError: this.$T_3为null“。有什么想法吗?
问候
勒内
发布于 2014-02-20 20:34:49
此错误是由于缺少Search Status元素造成的,该元素是搜索控件的一部分,并在Footer模板中呈现。
搜索状态
Search status元素用于显示有关搜索结果的提示。RenderSearchStatus函数用于呈现搜索状态。

解决方案
替换页脚呈现模板
Footer: function (ctx) {
return "</div>";
}使用
Footer: function (ctx) {
var footerHtml = "</div>";
footerHtml += RenderFooterTemplate(ctx); //render standard footer (pager, search status)
return footerHtml;
}博客文章自定义2013年Sharepoint中列表视图的呈现:在手风琴中显示列表项包含一个列表视图作为手风琴呈现的工作示例。
https://stackoverflow.com/questions/21850439
复制相似问题