Использование веб-методов на Sharepoint.

by galyamov 3. ноября 2010 10:56

Если вы гуглите по словам SharePoint, WebMethod, undefined, то вам сюда.

Во-первых, веб-методы работают только на страницах, с WebParts у вас такой номер не пройдет.

Во-вторых, нужно настроить скрипт-менеджер. Так как на страницах SharePoint скрипт-менеджер уже есть, по крайней мере в SharePoint 2010, настраивать его нужно программо. В коде ниже это делает функция EnsureScriptManager.

В-третьих, PageMethods в SharePoint почему-то синхронно не работает, по этому респонз нужно забирать из калбек функции асинхронно.

Итак. В код добавляем:

/// <summary>

/// Настраивает скрипт менеджедр что б работали веб-методы

/// </summary>

private void EnsureScriptManager()

{

ScriptManager scriptManager = ScriptManager.GetCurrent(this.Page); if (scriptManager == null)

{

scriptManager = new ScriptManager(); scriptManager.EnablePageMethods = true; if (Page.Form != null)

{

Page.Form.Controls.AddAt(0, scriptManager);

}

}

scriptManager.EnablePageMethods = true; scriptManager.EnablePartialRendering = true;

}

/// <summary>

/// Тут инициализируем скрипт-менеджер

/// </summary>

protected override void OnInit(EventArgs e)

{

EnsureScriptManager();

base.OnInit(e);

}

/// <summary>

/// Это тут совсем не нужно )

/// </summary>

protected void Page_Load(object sender, EventArgs e)

{

}

/// <summary>

/// Наш веб-метод

/// </summary>

[WebMethod] public static string GetData(int id)

{

return "im a data";

}

На aspx добавляем: 

<asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">

<script type="text/javascript">

function test() {

// Так не работает

var temp = PageMethods.GetData(13);

alert(temp);

// Так работает

PageMethods.GetData(13, function (response) {

alert(response);

});

}

test();

</script>

</asp:Content>

Текущий рейтинг: 5.0 (1 голосов)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

SharePoint

Комментарии закрыты

О нас

Это блог компании Инлайн. Мы занимаемся разработкой сайтов, корпоративных порталов и корпоративных информационных систем на основе новейших технологии Microsoft  - ASP.NET, SharePoint и Silverlight. А в этом блоге мы размещаем самые последние новости в области разработке для web.

Облако тегов