Freigeben über


Изменение вывода 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=7431

  • Anonymous
    June 23, 2009
    Я тоже временами такое вижу, но как-то раньше не придавал этому значения.