这是我为单个 portlet(股票报价面板)所做的。
我们有一个显示股票报价的小工具。我们在 Tickertech 开设了一个帐户,以便他们向我们提供报价信息。有一些用户偏好允许人们将小工具添加到私人页面,然后选择他们作为个人感兴趣的股票。您还可以选择要显示的列。这是通过 JavaScript 完成的。选定的股票代码与一个令牌一起发送,该令牌将请求标识为来自有效客户。
最简单的方法是使用 Web 内容控件并粘贴到 JavaScript 中。这可行,但用户无法更改涉及 Tickertech 的股票代码或其他偏好。
下一步是创建自定义 Webpart。我们在 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"+
这为我提供了一个可以添加到任何页面的 Web 部件,因为它位于 Web 部件库中。要添加使用静态 html webpart 构建的 webpart 的副本,您需要从可能使用“查看源”的现有实例中获取 JavaScipt 块,导航到目标页面,添加静态 HTML webpart 的新实例,并修改它以包含 JavaScipt 块;每一次。这样,用户只需从 web 部件列表中选择它,他们就可以自定义股票报价偏好。