惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

TaoSecurity Blog
TaoSecurity Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
F
Fortinet All Blogs
Cisco Talos Blog
Cisco Talos Blog
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Secure Thoughts
美团技术团队
雷峰网
雷峰网
Hugging Face - Blog
Hugging Face - Blog
博客园_首页
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
人人都是产品经理
人人都是产品经理
月光博客
月光博客
T
Tor Project blog
P
Privacy & Cybersecurity Law Blog
Recorded Future
Recorded Future
I
Intezer
博客园 - 【当耐特】
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
GbyAI
GbyAI
罗磊的独立博客
V
V2EX
Google DeepMind News
Google DeepMind News
D
DataBreaches.Net
Last Week in AI
Last Week in AI
T
Tailwind CSS Blog
www.infosecurity-magazine.com
www.infosecurity-magazine.com
A
About on SuperTechFans
Scott Helme
Scott Helme
Vercel News
Vercel News
Spread Privacy
Spread Privacy
T
Threat Research - Cisco Blogs
Recent Announcements
Recent Announcements
Hacker News: Ask HN
Hacker News: Ask HN
C
CERT Recently Published Vulnerability Notes
G
Google Developers Blog
B
Blog
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Jina AI
Jina AI
IT之家
IT之家
C
Cybersecurity and Infrastructure Security Agency CISA
P
Palo Alto Networks Blog
小众软件
小众软件
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
AWS News Blog
AWS News Blog

博客园 - Vengen

【笔记】DataTable或IList使用GroupBy方法的lamda表达式 WSS学习笔记(3) – 在“用户控件”中使用SPGridView WSS学习笔记(2) - 用QuickPart部署“用户控件”来替代WebPart 用ILmerge工具将C#中的EXE和DLL文件合并成单个文件 修改WordPress文章索引列表的日期格式 Windows7部署Android开发环境傻瓜式教程(Eclipse+ADT) 如何使用C#访问WordPress的xmlrpc.php - Vengen - 博客园 Windows7部署WordPress傻瓜式教程(IIS7.5+MySQL+PHP+WordPress) C#面向对象设计模式学习笔记(10) - Facade 外观模式(结构型模式) C#面向对象设计模式学习笔记(9) - Decorator 装饰模式(结构型模式) C#面向对象设计模式学习笔记(8) - Composite 组合模式(结构型模式) C#面向对象设计模式学习笔记(7) - Bridge 桥接模式(结构型模式) C#面向对象设计模式学习笔记(6) - Adapter 适配器模式(结构型模式) C#面向对象设计模式学习笔记(5) - Prototype 原型模式(创建型模式) C#面向对象设计模式学习笔记(4) - Factory Method 工厂方法模式(创建型模式) C#面向对象设计模式学习笔记(3) - Builder 生成器模式(创建型模式) C#面向对象设计模式学习笔记(2) - Abstract Factory 抽象工厂模式(创建型模式) - Vengen C#面向对象设计模式学习笔记(1) - Singleton 单件模式(创建型模式) C#面向对象设计模式学习笔记 - 开篇
WSS学习笔记(1) - 创建简单的WebPart
Vengen · 2011-01-03 · via 博客园 - Vengen

1、在WSS服务器上,打开VS2008,新建一个解决方案WssTest,创建一个类库SimpleWebPart,Class1.cs改名为WebPartGrid.cs

image

2、为方便调试,在类库属性中,修改输出路径到WSS站点bin目录,如:C:\Inetpub\wwwroot\wss\VirtualDirectories\80\bin\

image

3、添加引用

System.Drawing

System.Web

Windows SharePoint Services

image

image

image

4、实现WebPartGrid.cs

using System;
using System.Drawing;
using System.Data;
using System.Runtime.InteropServices;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Serialization;
using Microsoft.SharePoint;
using Microsoft.SharePoint.WebControls;
using Microsoft.SharePoint.WebPartPages;

namespace SimpleWebPart
{
    public class WebPartGrid : System.Web.UI.WebControls.WebParts.WebPart
    {
        DataGrid myGrid;

        /// <summary>
        /// 由ASP.NET页面框架调用,以通知使用基于合成的实现的服务器控件创建包含他们的任何子控件,以便为回发发或呈现做准备。
        /// </summary>
        protected override void CreateChildControls()
        {
            myGrid = new DataGrid();
            myGrid.HeaderStyle.Font.Bold = true;
            myGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
            myGrid.DataSource = GetDataTable();
            myGrid.DataBind();
            Controls.Add(myGrid);
        }

        /// <summary>
        /// 引发 System.Web.UI.Control.PreRender 事件
        /// </summary>
        /// <param name="e"></param>
        protected override void OnPreRender(EventArgs e)
        {
            DataTable dt = GetDataTable();
            myGrid.DataSource = dt;
            myGrid.DataBind();
        }

        /// <summary>
        /// 将控件呈现给指定的HTML编辑器
        /// </summary>
        /// <param name="writer"></param>
        protected override void Render(System.Web.UI.HtmlTextWriter writer)
        {
            this.EnsureChildControls();
            myGrid.RenderControl(writer);
        }

        private DataTable GetDataTable()
        {
            DataTable dt = new DataTable();
            dt.Columns.Add("ID");
            dt.Columns.Add("Name");
            dt.Columns.Add("Date");

            for (int i = 0; i < RowCount; i++)
            {
                DataRow dr = dt.NewRow();
                dr[0] = i;
                dr[1] = StrColumn1Text + ": " + i;
                dr[2] = "Create date :" + DateTime.Now;
                dt.Rows.Add(dr);
            }

            return dt;
        }

        #region

        private int _RowCount = 0;
        private string _StrColumn1Text = string.Empty;

        [Personalizable]//标识一个属性是自定义属性
        [WebBrowsable]//是否显示在属性编辑界面中
        [WebDisplayName("请输入要显示的行数")]//自定义属性的标题说明
        [WebDescription("自定义属性的描述")]//(暂时未发现有什么用处)
        [System.ComponentModel.Category("用户设置")]//属性分组,如果不设置,则显示在杂类中
        public int RowCount
        {
            get
            {
                return _RowCount;
            }
            set
            {
                _RowCount = value;
            }
        }

        [Personalizable]
        [WebBrowsable]
        [WebDisplayName("请输第一列的列名")]
        [System.ComponentModel.Category("用户设置")]
        public string StrColumn1Text
        {
            get
            {
                return _StrColumn1Text;
            }
            set
            {
                _StrColumn1Text = value;
            }
        }

        #endregion

    }
}

5、生成DLL

image

6、配置WSS站点的web.config

用Reflector查看DLL信息

image

打开WSS站点的web.config文件,

image

找到configuration –> SharePoint –> SafeControls

根据Reflector中的程序集信息添加配置节

<SafeControl Assembly="SimpleWebPart, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null" Namespace="SimpleWebPart" TypeName="*" Safe="True" />

image

7、导入WebPart

转到WSS站点,打开“网站操作” –> “网站设置” –> “Web部件”

 image

打开新建页面,找到SimpleWebPart.WebPartGrid,勾选导入库

image

在Web部件库中可以看到刚刚添加的WebPartGrid.webpart

image

8、创建测试页面,添加该Webpart

在网站操作中,创建新的Web部件页

image

添加Web部件,找到WebPartGrid,添加;

image

在新添加的WebPartGrid中,修改共享Web部件

image

展开右侧属性栏中的“用户设置”可以看到刚刚定义的两个属性。

image

填写参数,并应用,然后“退出编辑模式”就完成了WebPart的添加。

image

Vengen

2011-01-03