Изменение вывода MOSS 2007 RSS
В одном из моих проектов у меня возникла необходимость немного изменить вывод RSS для списка.
Самым простым способом оказалось изменение страницы генерации этого самого вывода: _layouts/listfeed.aspx?list=801f6ba8-73a4-417d-80cd-ebc360cd5056.
Быстрое обследование показало, что простое перекрытие метода Render не дает нужного результата и мне пришлось прибегнуть к небольшой хитрости.
Вот пример кода:
<%@ Assembly Name="Microsoft.SharePoint.ApplicationPages" %>
<%@ Page Language="C#" Inherits="Microsoft.SharePoint.ApplicationPages.ListFeed" %>
<%@ Import Namespace="System.IO" %>
<script language="C#" runat="server">
/// <summary>
/// Отрисовать страницу
/// </summary>
/// <param name="writer"></param>
protected override void Render(HtmlTextWriter writer)
{
MemoryStream ms = new MemoryStream();
base.spList.WriteRssFeed(ms, base.meetingInstanceId, null);
ms.Flush();
ms.Seek(0, SeekOrigin.Begin);
StreamReader sr = new StreamReader(ms);
String pageResult = sr.ReadToEnd();
sr.Close();
ms.Dispose();
// Здесь меняем вывод
pageResult = pageResult.Replace("XXX", "YYY");
base.Response.Clear();
writer.Write(pageResult);
}
</script>
Comments
Anonymous
February 12, 2009
PingBack from http://www.clickandsolve.com/?p=7431Anonymous
June 23, 2009
Я тоже временами такое вижу, но как-то раньше не придавал этому значения.