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


    我们知道,存储在数据库里的SharePoint页面是不能直接添加后台代码的,这给我们带来了很多的不方便,比如想要在页面上实现一些东西,都必 须使用Webpart或者自定义控件的方式,哪怕仅仅是很简单的几行后台代码。而WSS 3.0 是基于ASP.NET 2.0的,在ASP.NET站点里使用的任何技术在WSS站点里同样可以使用。因此我们同样可以给WSS站点的页面添加后台代码。

    存储在数据库中的sharepoint页面分为两部门,母板页和内容页,我们可以为这两种页面分别添加后台代码。实现方式不一样,若为内容页添加后 台代码,我们需要继承自WebPartPage类,若为母板页添加后台代码,我们需要继承自System.Web.UI.MasterPage类,你应该 将后台代码类与对应页面设置成相同的名字,但这不是必须的。
         这样我们就可以为页面上的控件添加相应的后台代码。比方说我们的页面上有一个按钮和一个文本框,ID分别为textbox1和button1,并为button添加一个ckick事件,当点击按钮时,将当前时间写入文本框中,可以这么来写:
    public class CustCode : WebPartPage
    {
    protected global::System.Web.UI.WebControls.TextBox txt1;
    protected global::System.Web.UI.WebControls.Button btn1;
    protected global::Microsoft.SharePoint.WebControls.PeopleEditor pe1;
    protected override void OnInit(EventArgs e)
    {
    base.OnInit(e);
    btn1.Click += new EventHandler(btn1_Click);
    }

    void btn1_Click(object sender, EventArgs e)
    {
    txt1.Text = pe1.CommaSeparatedAccounts;

    }

    }
       在MOSS的页面上,服务器控件分为ASP控件(命名空间System.Web.UI.WebControls)和sharepoint控件(命名空间是 Microsoft.SharePoint.WebControls),我们同样可以声明sharepoint控件并为它们添加相应的操作。
    写好我们的后台代码后,将代码生成到对应的bin目录下(或者GAC,记得强命名),在web.config文件中添加一行,

    <SafeControl Assembly="SharePointDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=745ac6ac419049e8" Namespace="SharePointDemo" TypeName="*" Safe="True" />

    ,其中assembly和namespace可以通过reflector获得,然后我们还需要在页面上重写页:
    <%@ Page Language="C#" MasterPageFile="~masterurl/default.master" Inherits="SharePointDemo.CustCode,SharePointDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=745ac6ac419049e8" %>
    如果是母板页,这样添加
    <%@ Master language="C#" Inherits=" MossCodeBehind.CodeBehind,MossCodeBehind, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" %>

    不过重写了之后,就不能在设计窗口中打开页面了。

    通过这种方式,开发者就可以在像ASP.NET中一样做开发,例如我们可以重写onload事件来实现向页面的控件绑定数据。
    有兴趣的朋友可以尝试一下,能满足我们很多的需求。

  • 相关阅读:
    再次梳理css3动画部分知识
    node搭环境
    微信小程序可用的第三方库
    省市区三级联动下拉框效果分析
    jq回到顶部效果分析
    jq案例中遇到的知识点总结(会飞的小鸟和三级联动)
    js正则表达式大全
    js中表达式 >>> 0 浅析
    为什么js中要用void 0 代替undefined
    npm install、npm install --save、npm install --save --dev、npm install -S、npm install -D的区别
  • 原文地址:https://www.cnblogs.com/majiang/p/3849589.html
Copyright © 2020-2023  润新知