向SharePoint页面添加后台代码
聲明:本文轉(zhuǎn)載
?
在本文中,我將跟大家一起討論,為MOSS的頁(yè)面添加服務(wù)器端代碼的另一種方式。不過(guò)首先要聲明,這種方式僅作為技術(shù)研究,如要使用,請(qǐng)慎重!
在上一篇文章中,我們討論過(guò)如何為MOSS頁(yè)面添加服務(wù)端后臺(tái)代碼,詳見(jiàn)(MOSS 2007開(kāi)發(fā)日記(2) - 為sharepoint頁(yè)面添加后臺(tái)代碼,http://bbs.winos.cn/thread-36766-1-1.html),這種方式是通過(guò)將代碼生成為一個(gè)DLL,然后與對(duì)應(yīng)的頁(yè)面進(jìn)行綁定,類似于ASP.NET中的Code-Behind,而我們知道,在用ASP.NET進(jìn)行開(kāi)發(fā)的時(shí)候,可以通過(guò)在頁(yè)面上添加<script runat=”server”></script>直接使用服務(wù)器端代碼,那在MOSS頁(yè)面中可不可以呢?既然是基于ASP.NET 2.0,那就沒(méi)什么問(wèn)題。偶然在一老外的博客上看到了一篇介紹如何在MOSS頁(yè)面上使用<script runat=”server”></script>代碼塊,詳見(jiàn):SharePoint 2007: using ASP.NET server side code in your pages,那我們就可以發(fā)揮一下,比如寫(xiě)一個(gè)page_load,給button托管一個(gè)Click事件等等,下面就來(lái)詳細(xì)介紹。
? ? 我們知道,直接在MOSS頁(yè)面上添加<script runat=”server”></script>代碼塊,會(huì)提示我們”處理XXXX時(shí)出現(xiàn)錯(cuò)誤。此文件中不允許使用代碼塊”。怎么辦呢?我們來(lái)修改一下web.config,在<PageParserPaths></PageParserPaths>中添加一行(默認(rèn)這個(gè)節(jié)點(diǎn)中沒(méi)有內(nèi)容):
<PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>
請(qǐng)將VirtualPath對(duì)應(yīng)的路徑改為你自己相應(yīng)的頁(yè)面路徑,如上面這種寫(xiě)法,我是在/_catalogs/masterpage/下的母版頁(yè)中進(jìn)行測(cè)試。保存并重啟ISS后,我們就可以在頁(yè)面中添加<script runat=”server”></script>代碼塊了。
? ? 擴(kuò)展一下。比如我們想使用頁(yè)面的Page_Load事件,可以這樣來(lái)寫(xiě)(我用C#作示例):先添加<script type="text/c#" runat="server"></script>代碼塊,再在代碼塊中添加
? ?protected void Page_Load(object sender, EventArgs e)
? ?{
? ?}
這樣我們就可以在頁(yè)面Load的時(shí)候做一些想做的事情。比如給頁(yè)面上一服務(wù)器端Button控件托管單擊事件,隨便向頁(yè)面中添加一個(gè)Button按鈕,如下:
<asp:Button ID="button1" runat="server" Text="click me"></asp:Button>
在上面我們添加的Page_Load中這樣寫(xiě):
protected void Page_Load(object sender, EventArgs e)
{
? ?? ? this.button1.Click += new EventHandler(b1_Click);
}
然后再添加事件處理代碼b1_Click,我們讓它在點(diǎn)擊的時(shí)候取得當(dāng)前服務(wù)器時(shí)間賦給Button的Text,如下:
? ?void b1_Click(object sender, EventArgs e)
? ?{
? ???this.button1.Text=DateTime.Now.ToString();
? ?}
返回頁(yè)面,單擊按鈕,你就可以看到效果了。這只是做一個(gè)示例,其它的就看大家自由發(fā)揮了。
關(guān)于這方面的資料比較上,老外的博客上只列出了兩篇,感興趣的朋友可以看一下:? ?
http://msdn2.microsoft.com/en-us/library/ms562040.aspx
http://msdn2.microsoft.com/en-us/library/ms551625.aspx.
? ? 再次提醒大家一下,使用這種方式添加服務(wù)器端代碼極不安全,任何擁有編輯頁(yè)面權(quán)利的人都可以通過(guò)這種方式在頁(yè)面中使用服務(wù)器端代碼,請(qǐng)慎重使用。
你可以用你的母版頁(yè)來(lái)測(cè)試~
或者可以直接用designer打開(kāi)站點(diǎn)在根路徑下添加一個(gè)aspx頁(yè)面,這樣VirtualPath就可以這樣寫(xiě):/*
?
轉(zhuǎn)載于:https://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html
總結(jié)
以上是生活随笔為你收集整理的向SharePoint页面添加后台代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: XP与Ubuntu双系统的问题
- 下一篇: 在计算机中查找notepad,notep