четверг, 3 мая 2012 г.

Программное создание страниц веб-частей

Как оказалось задача программного создания страниц веб-частей не такая уж тривиальная, как может показаться на первый взгляд.

Решать её необходимо с помощью ProcessBatchData:

/// <summary>
/// Create new webpart page
/// </summary>
/// <param name="list">List to keep page</param>
/// <param name="pageTitle">Page title</param>
/// <param name="layoutTemplate">Layout template id</param>
/// <returns></returns>
private static string CreateWebPartPage(SPList list, string pageTitle, int layoutTemplate)
{
    const string newItemTemplate = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                                    "<Method ID=\"0,NewWebPage\">" +
                                    "<SetList Scope=\"Request\">{0}</SetList>" +
                                    "<SetVar Name=\"Cmd\">NewWebPage</SetVar>" +
                                    "<SetVar Name=\"ID\">New</SetVar>" +
                                    "<SetVar Name=\"Type\">WebPartPage</SetVar>" +
                                    "<SetVar Name=\"WebPartPageTemplate\">{2}</SetVar>" +
                                    "<SetVar Name=\"Overwrite\">true</SetVar>" +
                                    "<SetVar Name=\"Title\">{1}</SetVar>" +
                                    "</Method>";
    var newItemXml = string.Format(newItemTemplate, list.ID, pageTitle, layoutTemplate);

    return list.ParentWeb.ProcessBatchData(newItemXml);
}

 

Применение:

var web = SPContext.Current.Web;
var pagesLibrary = web.GetList("Pages");
CreateWebPartPage(pagesLibrary, "MyPage", 2);

Номера шаблонов для LayoutTemplate:

  1. Целая страница, по вертикали
  2. Верхний колонтитул, нижний колонтитул, 3 столбца
  3. Верхний колонтитул, левый столбец, текстовая область
  4. Верхний колонтитул, правый столбец, текстовая область
  5. Верхний колонтитул, нижний колонтитул, 2 столбца, 4 строки
  6. Верхний колонтитул, нижний колонтитул, 4 столбца, верхняя строка
  7. Левый столбец, верхний колонтитул, нижний колонтитул, верхняя строка, 3 столбца
  8. Правый столбец, верхний колонтитул, нижний колонтитул, верхняя строка, 3 столбца

или тут.

суббота, 28 апреля 2012 г.

SPRememberScroll

Нашёл среди веб-контролов SharePoint: SPRememberScroll.
Используется для сохранения позиции скрола между отправками на сервер (postback'ами). Унаследован от панели.

Т.е., по сути, мы имеем панель, в которую можем поместить некоторое содержимое, допустим большое изображение или длинный список, и где-то добавить, например, кнопку.
Пользователь, пролистав в середину списка, нажмёт на кнопку и страница перезагрузится, но список останется открытым на том же элементе, на котором пользователь закончил просмотр.

Пример.
<SharePoint:SPRememberScroll runat="server" Height="200" Width="600" ScrollBars="Auto">
    <asp:Image runat="server" ImageUrl="http://blog.pentalogic.net/wp-content/uploads/2011/02/hosted-sharepoint4.jpg"/>
</SharePoint:SPRememberScroll>
<asp:Button runat="server" Text="Click me"/>
image
Позиция изображения будет сохраняться между нажатиями на кнопку.

суббота, 7 апреля 2012 г.

четверг, 5 апреля 2012 г.

RoadMap для .NET разработчиков

Обнаружил сегодня интересный RoadMap для .NET разработчиков. Спасибо Volfar.
Взято с сайта http://edu.cbsystematics.com/.


На какой станции остановились вы? :)