在SharePoint网站集上实施FAQ页面的最佳或常用方法是什么?
答案 0 :(得分:16)
我们过去做过的事情:
你最终得到的结论是:
然后,您可以使用listview webpart将其放在页面上。
更新:我在我的博客上用SharePoint 2010示例写了这个:http://thechriskent.com/2012/03/09/simple-sharepoint-faq-in-5-minutes/
答案 1 :(得分:1)
另一种可能的解决方案 - 使用预览窗格样式选项,您可以在左侧列中找到问题列表,然后鼠标悬停显示(选定)字段。
我有Q的答案很长,所以我认为在某些情况下这可能会更好(直到它可以在个别记录级别或某个字段上使用手风琴)。
答案 2 :(得分:1)
建议在SharePoint列表中存储FAQ条目的解决方案。 它包括:
图1.带有Accordion View的常见问题列表(SharePoint 2013)
图2.使用Accordion View的常见问题列表(SharePoint 2010)
1为FAQ条目创建自定义内容类型
<ContentType ID="0x0100fb1027dc96a44bf280f6cb823a8da5ae"
Name="FAQ"
Group="SE"
Description="FAQ Content Type"
Inherits="TRUE"
Version="0">
<FieldRefs>
<FieldRef Name="LinkTitle" ID="{82642ec8-ef9b-478f-acf9-31f7d45fbc31}" DisplayName="Question" Sealed="TRUE"/>
<FieldRef Name="LinkTitleNoMenu" ID="{bc91a437-52e7-49e1-8c4e-4698904b2b6d}" DisplayName="Question" Sealed="TRUE"/>
<FieldRef Name="Title" ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" DisplayName="Question" Sealed="TRUE"/>
<FieldRef ID="{b0747420-54bc-41b2-a1b3-8432f2dbdc70}" Name="Answer"/>
</FieldRefs>
</ContentType>
2创建FAQ列表的客户端呈现视图(适用于SharePoint 2013)
(function () {
loadCss('http://ajax.aspnetcdn.com/ajax/jquery.ui/1.8.10/themes/redmond/jquery-ui.css');
function OnAccordionViewPostRender(renderCtx) {
jQuery(function() {
jQuery( "#accordionFAQ" ).accordion();
});
}
function loadCss(url){
var link = document.createElement('link');
link.href = url;
link.rel = 'stylesheet';
document.getElementsByTagName('head')[0].appendChild(link);
}
function OnAccordionViewPreRender(renderCtx) {
}
function RenderAccordionViewBodyTemplate(renderCtx) {
var listData = renderCtx.ListData;
if (renderCtx.Templates.Body == '') {
return RenderViewTemplate(renderCtx);
}
var accordionHtml ='';
accordionHtml = '<div id="accordionFAQ">';
for (var idx in listData.Row) {
var listItem = listData.Row[idx];
accordionHtml += '<h3>';
accordionHtml += listItem.Title;
accordionHtml += '</h3>';
accordionHtml += '<div>';
accordionHtml += listItem.Answer;
accordionHtml += '</div>';
}
accordionHtml += '</div>';
return accordionHtml;
}
function _registerAccordionViewTemplate() {
var accordionViewContext = {};
//accordionViewContext.BaseViewID = 'Accordion';
accordionViewContext.Templates = {};
accordionViewContext.Templates.View = RenderAccordionViewBodyTemplate;
accordionViewContext.OnPreRender = OnAccordionViewPreRender;
accordionViewContext.OnPostRender = OnAccordionViewPostRender;
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(accordionViewContext);
}
ExecuteOrDelayUntilScriptLoaded(_registerAccordionViewTemplate, 'clienttemplates.js');
})();
3通过JSLink
将客户端呈现模板应用于现有视图有关创建常见问题列表的详细信息,请参阅以下帖子: