转:http://www.cnblogs.com/chenzehe/archive/2009/12/25/1631863.html

 在本文中,我将跟大家一起讨论,为MOSS的页面添加服务器端代码的另一种方式。不过首先要声明,这种方式仅作为技术研究,如要使用,请慎重!

  在上一篇文章中,我们讨论过如何为MOSS页面添加服务端后台代码,详见(MOSS 2007开发日记(2) - 为sharepoint页面添加后台代码,http://bbs.winos.cn/thread-36766-1-1.html),这种方式是通过将代码生成为一个DLL,然后与对应的页面进行绑定,类似于ASP.NET中的Code-Behind,而我们知道,在用ASP.NET进行开发的时候,可以通过在页面上添加<script
runat=”server”></script>直接使用服务器端代码,那在MOSS页面中可不可以呢?既然是基于ASP.NET 2.0,那就没什么问题。偶然在一老外的博客上看到了一篇介绍如何在MOSS页面上使用<script runat=”server”></script>代码块,详见:SharePoint 2007: using ASP.NET server side code in your pages,那我们就可以发挥一下,比如写一个page_load,给button托管一个Click事件等等,下面就来详细介绍。

    我们知道,直接在MOSS页面上添加<script runat=”server”></script>代码块,会提示我们”处理XXXX时出现错误。此文件中不允许使用代码块”。怎么办呢?我们来修改一下web.config,在<PageParserPaths></PageParserPaths>中添加一行(默认这个节点中没有内容):

<PageParserPath VirtualPath="/_catalogs/masterpage/*" CompilationMode="Always" AllowServerSideScript="true" IncludeSubFolders="true"/>

请将VirtualPath对应的路径改为你自己相应的页面路径,如上面这种写法,我是在/_catalogs/masterpage/下的母版页中进行测试。保存并重启ISS后,我们就可以在页面中添加<script runat=”server”></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就可以这样写:/*

向SharePoint页面添加后台代码的更多相关文章

  1. 为sharepoint的内部页面添加后台代码

    我们知道,存储在数据库里的SharePoint页面是不能直接添加后台代码的,这给我们带来了很多的不方便,比如想要在页面上实现一些东西,都必 须使用Webpart或者自定义控件的方式,哪怕仅仅是很简单的 ...

  2. 步步为营-73-asp.net的简单练习(根据美工提供静态页面,编写后台代码)

    说明:实际企业中开发分工是很明确,往往程序员根据美工提供的UI界面进行后台代码的编写. 1.1 原始HTML页面 1.2 使用aspx进行修改 这里使用到了三层架构 using System; usi ...

  3. SpringBoot2.0之七 实现页面和后台代码的热部署

    开发过程中我可能经常会因为修改一点点代码就需要重启项目而烦恼,这样不仅很繁琐,还会因为不断重启浪费大量的时间,无法提高工作效率.可是现在SpringBoot为我们提供了非常简单的方式让我们实现热部署. ...

  4. SharePoint 页面中添加.Net代码

    今天整理资料,看到一个非常有意思的截图,可以在SharePoint页面库里的页面中,添加.Net代码,只需修改一下相应应用程序的web.config文件,即可: 在web.config里面的<P ...

  5. SharePoint 使用代码为页面添加WebPart

    传统的SharePoint实施中,我们通常会创建SharePoint页面,然后添加webpartzone,而后在上面添加webpart:但是有些情况下,也要求我们使用代码,将webpart添加到相应w ...

  6. sharepoint 2010 页面添加footer方法 custom footer for sharepoint 2010 master page

    转:http://blog.csdn.net/chenxinxian/article/details/8720893 在sharepoint 2010的页面中,我们发现,没有页尾,如果我们需要给页面添 ...

  7. ecshop 添加后台页面以及设置权限

    转自 http://blog.csdn.net/tgh1981/article/details/10394059 ecshop 添加新页面 给ecshop后台增加管理功能页面 比如我们增加一个统计报表 ...

  8. html页面下拉列表中动态添加后台数据(格式化数据,显示出数据的层次感)

    html页面下拉列表中动态添加后台数据(格式化数据,显示出数据的层次感) 效果图: 运行原理和技术: 当页面加载完毕,利用jquery向后台发送ajax请求,去后台拼接<select>&l ...

  9. asp.net 点击按钮,页面没有任何变化,后台代码不触发

    asp.net 点击按钮,页面没有任何变化,后台代码不触发 和可能是 asp.net button  缺少validationGroup 导致的,需要查看页面的validation并且让他们抛出错误信 ...

随机推荐

  1. ReactiveCocoa 入门学习 (一)

    引言 现在由于需求的不断发展,MVC这个经典的框架由于Controller的任务越来越多,显得"臃肿"了,网上又推出了新的框架,比如MVVM,ReactiveCocoa, 今天就来 ...

  2. 关于Spring AOP和IOC的一些总结

    Spring官方网站:https://spring.io/ 最早对象的创建是有new关键字,但是如果产生的类比较繁多或者复杂,就用工厂代替new关键字,但是工厂的控制能力有限,譬如对产生对象的生命周期 ...

  3. linux下启动和关闭网卡命令

    ifup.ifdown:linux命令   实时地手动修改一些网络接口参数,可以利用ifconfig来实现,如果是要直接以配置文件,亦即是在 /etc/sysconfig/network-script ...

  4. webstorm快捷方式

    刚开始在使用webstrom的时候,不知道快捷方式,感觉自己把webstorm当做记事本使用,真的挺傻的,在朋友的指导下,原来webstorm有快捷方式 一.界面操作 快捷键 说明 ctrl+shif ...

  5. 快速使用Log4Cpp

    封了一下接口,快速使用. 其他的你都不用管了. 这里封装了需要读取外部conf文件配置输出项.否则可以用getInstance初始化日志类 #include "L4Cpp.h" v ...

  6. php 接口 implements 使用

    主要对类名,类所拥有的方法,以及所传参数起约束和规范做用,感觉跟php abstract 抽象类又有点像. 一,接口的定义和调用 <?php interface face1 { const pa ...

  7. ImageList半透明,Alpha通道bug处理。

    由于ImageList的先天障碍,对alpha通道支持不好.虽然到xp有所改善,但瑕疵依然存在. 通过reflactor发现ImageList通过windows api来进行读写的.写入数据时会对原始 ...

  8. [swift] NSClassFromString 无法获得该类

    在写OC的时候需要用 NSClassFromString(classStringName)获得一个类,如果存在就用这个类型来声明一个对象, 但是在swift的时候却往往得不到这个类,为什么呢? 从截图 ...

  9. IT全称

    1.jar,war,ear(摘自:http://blog.sina.com.cn/s/blog_54bb7b950100wnbb.html) Jar文件(扩展名为. Jar)包含Java类的普通库.资 ...

  10. bootstrap框架应用

    ---------------------------------------------------------------bootstrap---------------------------- ...