以下是我爲單個portlet,股票報價面板所做的工作。
我們有一個顯示股票報價的小工具。我們在Tickertech有一個帳戶供他們爲我們提供報價信息。有用戶喜好,允許人們將小工具添加到私人頁面,然後選擇他們感興趣的股票作爲個人。您也可以選擇要顯示的列。這是通過JavaScript完成的。選定的股票代碼與令牌一起發送,該令牌將請求標識爲來自有效客戶。
最簡單的方法是使用Web內容控件並粘貼到JavaScript中。這是有效的,但不會讓用戶更改涉及Tickertech的股票代碼或其他偏好。
下一步是創建一個自定義Web部件。我們正在使用Visual Studio的WSPBuilder插件。該項目幫助我們的諮詢公司對我們進行了推薦,我很高興他們這樣做,將整合週期縮短到可以接受的水平。
在webpart中,我們有一個包含腳本的屬性。
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屬性在getter中進行了連接。
//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"+
這讓我可以添加到任何頁面的webpart,因爲它是在webpart畫廊。要添加使用靜態html webpart構建的webpart的副本,您需要從現有的實例中獲取JavaScipt塊,可能使用「view source」,導航到目標頁面,添加靜態HTML webpart的新實例,並修改它以包含JavaScipt塊;每一次。這樣用戶只需要從一個webparts列表中選擇它,並且他們可以定製股票報價偏好。
@Bravax,您使用彈出式窗口的解決方案聽起來就像我爲#1想的那樣。即使它只是將現有的SharePoint系統封裝在頂層,它也會試圖將所有portlet重寫爲webparts。 –