设为首页 收藏本站
查看: 702|回复: 0

[经验分享] 向SharePoint页面添加后台代码

[复制链接]

尚未签到

发表于 2015-9-27 14:48:47 | 显示全部楼层 |阅读模式
  声明:本文转载
  
  在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一种方式。不过首先要声明,这种方式仅作为技术研究,如要使用,请慎重!
  在上一篇文章中,我们讨论过如何为MOSS页面添加服务端后台代码,详见(MOSS 2007开发日记(2) - 为sharepoint页面添加后台代码,http://bbs.winos.cn/thread-36766-1-1.html),这种方式是通过将代码生成为一个DLL,然后与对应的页面进行绑定,类似于ASP.NET中的Code-Behind,而我们知道,在用ASP.NET进行开发的时候,可以通过在页面上添加<script runat=&#8221;server&#8221;></script>直接使用服务器端代码,那在MOSS页面中可不可以呢?既然是基于ASP.NET 2.0,那就没什么问题。偶然在一老外的博客上看到了一篇介绍如何在MOSS页面上使用<script runat=&#8221;server&#8221;></script>代码块,详见:SharePoint 2007: using ASP.NET server side code in your pages,那我们就可以发挥一下,比如写一个page_load,给button托管一个Click事件等等,下面就来详细介绍。
    我们知道,直接在MOSS页面上添加<script runat=&#8221;server&#8221;></script>代码块,会提示我们&#8221;处理XXXX时出现错误。此文件中不允许使用代码块&#8221;。怎么办呢?我们来修改一下web.config,在<PageParserPaths></PageParserPaths>中添加一行(默认这个节点中没有内容):
<PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>
请将VirtualPath对应的路径改为你自己相应的页面路径,如上面这种写法,我是在/_catalogs/masterpage/下的母版页中进行测试。保存并重启ISS后,我们就可以在页面中添加<script runat=&#8221;server&#8221;></script>代码块了。
    扩展一下。比如我们想使用页面的Page_Load事件,可以这样来写(我用C#作示例):先添加<script type="text/c#" runat="server"></script>代码块,再在代码块中添加
   protected void Page_Load(object sender, EventArgs e)
   {
   }
这样我们就可以在页面Load的时候做一些想做的事情。比如给页面上一服务器端Button控件托管单击事件,随便向页面中添加一个Button按钮,如下:
<asp:Button ID="button1" runat="server" Text="click me"></asp:Button>
在上面我们添加的Page_Load中这样写:
protected void Page_Load(object sender, EventArgs e)
{
       this.button1.Click += new EventHandler(b1_Click);
}
然后再添加事件处理代码b1_Click,我们让它在点击的时候取得当前服务器时间赋给Button的Text,如下:
   void b1_Click(object sender, EventArgs e)
   {
     this.button1.Text=DateTime.Now.ToString();
   }
返回页面,单击按钮,你就可以看到效果了。这只是做一个示例,其它的就看大家自由发挥了。
关于这方面的资料比较上,老外的博客上只列出了两篇,感兴趣的朋友可以看一下:   
http://msdn2.microsoft.com/en-us/library/ms562040.aspx
http://msdn2.microsoft.com/en-us/library/ms551625.aspx.
    再次提醒大家一下,使用这种方式添加服务器端代码极不安全,任何拥有编辑页面权利的人都可以通过这种方式在页面中使用服务器端代码,请慎重使用。
  你可以用你的母版页来测试~
或者可以直接用designer打开站点在根路径下添加一个aspx页面,这样VirtualPath就可以这样写:/*
  

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-119592-1-1.html 上篇帖子: 测试环境中安装sharepoint server 2010过程中出现的一些问题及解决过程 下篇帖子: 对SharePoint 2010进行单元测试NUnit
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表