我正在尝试实施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);
})();
我很伤心,手风琴正在工作,搜索框正在显示。如果我尝试提交搜索,则弹出sp.ui.listsearchbox.js中的JS错误“TypeError:this。$ T_3 is null”。 有什么想法吗?
此致
勒
答案 0 :(得分:1)
由于缺少Search Status
元素而导致发生此错误,该元素是搜索控件的一部分并在Footer
模板中呈现
搜索状态元素用于显示有关搜索结果的提示。
RenderSearchStatus
函数用于呈现搜索状态
替换页脚渲染模板
Footer: function (ctx) {
return "</div>";
}
带
Footer: function (ctx) {
var footerHtml = "</div>";
footerHtml += RenderFooterTemplate(ctx); //render standard footer (pager, search status)
return footerHtml;
}
博客文章Customize the rendering of a List View in Sharepoint 2013: Displaying List Items in Accordion包含呈现为Accordion的列表视图的工作示例。