Вот что я сделал для отдельного портлета, панели котировок акций.
У нас есть гаджет, который отображает котировки акций. У нас есть аккаунт в Tickertech, чтобы они могли предоставить нам информацию о расценках. Существуют пользовательские настройки, которые позволяют пользователям добавлять гаджет на личную страницу, а затем выбирать интересующие их акции как отдельных лиц. Вы также можете выбрать столбцы для отображения. Это достигается с помощью JavaScript. Выбранные символы акций отправляются вместе с токеном, который идентифицирует запрос как поступивший от действительного клиента.
Простейшим подходом было использование элемента управления веб-контентом и просто вставка в JavaScript. Это работает, но пользователь не может изменить биржевые символы или другие настройки, связанные с Tickertech.
Следующим шагом было создание пользовательской веб-части. Мы используем дополнение WSPBuilder для Visual Studio. Консалтинговая фирма, которая помогает нам с проектом, рекомендовала его, и я очень рад, что он сделал это, сокращает цикл интеграции до приемлемого уровня.
В веб-части у нас есть свойство, содержащее скрипт.
public class MarketSummaryWP : Microsoft.SharePoint.WebPartPages.WebPart
{
string m_scriptBlockPre = "<script language='javascript'> \n"+ // the beginning of the JavaScipt block
В переопределении CreateChildControls () я просто добавил его как литерал.
this.Controls.Add(new LiteralControl(this.Script));
Затем я изменил скрипт на приватный и создал другое свойство для хранения списка символов акций. Обратите внимание, что свойство Script выполняет конкатенацию внутри геттера.
//Script Property
[WebBrowsable(false),
WebDisplayName("Script"),
WebDescription("The JavaScript to insert in the page.")]
public string Script
{
get { return m_scriptBlockPre + m_stockSymbolsList + m_scriptBlockPost; }
//set { ; }
}
//Stock Symbol list Property
[Personalizable(PersonalizationScope.User), WebBrowsable(true),
WebDisplayName("Stock Symbols"),
WebDescription("The stock symbols to retrieve quotes for, seperated by commas.")]
public string StockSymbols
{
get { return m_stockSymbolsList; }
set { m_stockSymbolsList = value; }
}
string m_stockSymbolsList = "GE,CAT,$DJI,AMR,JNJ,";
string m_scriptBlockPost = " *other JavaScript code* </script> \n"+
Это дает мне веб-часть, которую можно добавить на любую страницу, потому что она находится в галерее веб-частей. Чтобы добавить копию веб-части, созданной с использованием статической веб-части html, вам необходимо получить блок JavaScipt из существующего экземпляра, возможно, с использованием «просмотра источника», перейти на целевую страницу, добавить новый экземпляр статической веб-части HTML, и измените его, чтобы включить блок JavaScipt; каждый раз. Таким образом, пользователям нужно только выбрать его из списка веб-частей, и они могут иметь индивидуальные настройки котировок акций.