首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SharePoint2013扩展ContentBySearchWebpart

问SharePoint2013扩展ContentBySearchWebpart
EN

Stack Overflow用户
提问于 2012-10-18 08:00:16
回答 1查看 1.2K关注 0票数 1

简单来说,我的问题是:

我扩展了ContentBySearchWebpart,以便创建用于搜索的自定义查询。我修改了DataProviderJSON属性,并在其中添加了自定义QueryTemplate。但是Webpart呈现的是默认结果。

我想做的是:

  1. 我创建了一个目录站点集合和其他发布站点集合。
  2. 在目录站点中创建列表,将其启用为目录,并在发布站点中连接此目录。
  3. 在发布站点中添加CSWP,其结果源是上面的目录连接。
  4. 现在我想自定义我的查询。
EN

回答 1

Stack Overflow用户

发布于 2012-10-22 10:03:39

我已经解决了我的问题。我们需要在扩展的webpart的构造函数中设置一些基本属性。下面是一个代码示例:

代码语言:javascript
复制
            string dataProviderJson = "{{'Properties':{{'TryCache':true,'Scope':'{0}','HHTitle_WB_Marker1':50,'HHTitle_WB_Marker2':60,'UpdateLinksForCatalogItems':true,'EnableStacking':true,'searchTerms':'','Tag':''}},'QueryGroupName':'Default','SourceID':'8413cd39-2156-4e00-b54d-11efd9abdb89','SourceName':'Local SharePoint Results (System)','SourceLevel':'Ssa','CollapseSpecification':'','QueryTemplate':'{{searchTerms?}} (contentclass:sts_listitem OR IsDocument:True) SPSiteUrl:{1} ListId:3d001e7a-d856-428b-9785-edf7ec4f4876 {{?owstaxidMetadataRegion:{{Tag}}}}  owstaxIdMetadataRegion:{2}','FallbackSort':[{{'p':'Rank','d':0}}],'RankRules':[],'AsynchronousResultRetrieval':false,'SendContentBeforeQuery':true,'BatchClientQuery':true,'FallbackLanguage':-1,'FallbackRankingModelID':'8f6fd0bc-06f9-43cf-bbab-08c377e083f4','EnableStemming':true,'EnablePhonetic':false,'EnableNicknames':false,'EnableInterleaving':true,'EnableQueryRules':true,'EnableOrderingHitHighlightedProperty':false,'HitHighlightedMultivaluePropertyLimit':-1,'IgnoreContextualScope':false,'ScopeResultsToCurrentSite':false,'TrimDuplicates':true,'ClientType':'ContentSearchRegular','UpdateAjaxNavigate':true,'SummaryLength':180,'DesiredSnippetLength':90,'PersonalizedQuery':false,'FallbackRefinementFilters':null,'IgnoreStaleServerQuery':false,'RenderTemplateId':'DefaultDataProvider','AlternateErrorMessage':null,'Title':''}}";
            string siteUrl = SPContext.Current.Site != null ? SPContext.Current.Site.Url.Trim() : "";
            base.ResultsPerPage = 3;
            base.BypassResultTypes = true;
            base.AlwaysRenderOnServer = false;
            dataProviderJson = String.Format(dataProviderJson, siteUrl, siteUrl + "/sites/Catalog", "en");
            base.DataProviderJSON = dataProviderJson;
            base.ItemTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Banner.js";
            base.GroupTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Group_Content.js";
            base.SelectedPropertiesJson = "['PublishingImage','PictureURL','PictureThumbnailURL','Path','Title','Description','SecondaryFileExtension','ContentTypeId']";
            base.HitHighlightedPropertiesJson = "['Title','Path','Author','SectionNames','SiteDescription']";
            base.QueryGroupName = "Default";
            base.RenderTemplateId = "/_catalogs/masterpage/Display Templates/Content Web Parts/Control_Banner.js";
            base.StatesJson = "{}";
            base.Title = "Banner Search WebPart";
            base.Description = "Banner Search WebPart";
            base.AllowMinimize = true;
            AllowConnect = true;
            AllowEdit = true;
            AllowHide = true;
            base.ZoneID = "ImportedPartZone";
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12949808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档