我有一个sharepoint内部网门户,它有很多博客,并且有自定义设计。我们使用默认数据表单webpart来显示博客帖子。默认情况下,帖子会根据“创建日期”进行排序。
我有一个来自客户的新要求,要求我将排序标准更改为“已发布日期”。在不使用SharePoint Designer的情况下实现此目的的最简单方法是什么。
注意: 创建新视图不是解决方案,因为我无法应用自定义设计。
答案 0 :(得分:3)
为什么不能使用SharePoint Designer?它会快得多。你可能做的是:
<property name="DataSourcesString" type="string">
节点&amp; amp; lt; OrderBy&amp; amp; amp;&amp; amp; lt; FieldRef Name =&amp; amp; quot; Created&amp; amp; quot;升序=&放大器;放大器; QUOT; TRUE&安培; QUOT; /&放大器;放大器; GT;&放大器;放大器; LT; /排序依据&放大器;放大器; GT;
答案 1 :(得分:0)
您是否可以编辑当前视图,因此按发布日期排序? (我认为默认是发布日期..)
答案 2 :(得分:0)
您可以导出webpart并编辑下载的.webpart XML文件中的排序字段吗?
答案 3 :(得分:0)
感谢Zincorp, 我可以按发布日期排序。但是我在Intranet上有20多个博客,而且我没有访问生产服务器。基于Zincorp的解决方案,我需要为每个博客创建新的Web部件,或者需要编辑参数值,在我的情况下这是不可能的。
所以我以另一种方式实现了这一目标。
首先,我创建了一个从当前站点读取博客的Web部件。
string url = Request.Url.ToString();
SPSite site = new SPSite(url.Substring(0, url.LastIndexOf('/')));
使用CAML查询我可以阅读&amp;按发布日期对帖子排序。
下一个任务是用新的Web部件替换Web部件的所有发布数据。为此,我创建了一个功能,可以获取我的网站集中的所有博客,并使用以下代码替换Web部件
using (SPWeb spWebTest = spSiteTest.OpenWeb())
{
SPWebPartCollection webparts = spWebTest.GetWebPartCollection("default.aspx", Storage.Shared);
for (int k = 0; k < webparts.Count; k++)
{
//get reference to webpart
Microsoft.SharePoint.WebPartPages.WebPart wp = webparts[k];
//check webpart Title to find webpart which is to be removed
if (wp.Title == "Posts")
{
//delete webpart
webparts.Delete(wp.StorageKey);
//update spWeb object
spWebTest.Update();
} }
//create new webpart object
WebPartToBeAdded wpNew = new WebPartToBeAdded();
//set properties of new webpart object
wpNew.ZoneID = "1";
wpNew.Title = "LatestPost";
wpNew.ChromeState = System.Web.UI.WebControls.WebParts.PartChromeState.Normal;
wpNew.ChromeType = System.Web.UI.WebControls.WebParts.PartChromeType.None;
//add new webpart object to webparts collection
webparts.Add(wpNew);
}