最近,自己也在学习写一些SharePoint的部件,也就是使用对象模型,下面,介绍一下自己刚刚写的小测试程序,不足之处,还请指正。
1、? 新建项目
Vs2008 – 新建 – 项目 – 类库 – 输入名字 – 确定,即可
2、? 添加引用
当然,很多功能都不是咱自己写的,咱需要的多数是调用,尤其对于SharePoint本身的操作,因为有对象模型啊。右侧“解决方案资源管理器”引用,右键添加MicroSoft.SharePoint(这个东东在C:\Program Files\Common Files\Microsoft Shared\web server extensions\12\ISAPI下面),因为使用对象模型,肯定需要这个了。然后在前面using里面添加
using Microsoft.SharePoint.WebPartPages;
然后在public class showlist:WebPart前面添加下面代码,为的是使我们定义的参数可以跑到右侧设置部件的地方去。
[ToolboxData("<{0}:wptoolpanetest runat="server">{0}:wptoolpanetest>"), XmlRoot(Namespace = "WPToolPaneTest")]
然后是添加强名称密钥
如图图1
?
?
3、? 下面可以先编译一下我们的部件,然后可以看看,我们的部件能发布到SharePoint网站中么?!先把dll拷到bin下,然后添加SafeControl串
再说说那个PublicKeyToken怎么找到,可以用反编译工具,当然也可以用vs2008自带的工具,VS2008命令提示,输入sn –T 然后把dll拖进来,回车,记得-T后面敲个空格。
发布部件,就不用我说了吧,相信大家都很了解,不知道你们找到我们写的部件没有,我是找到了,添加进来看看有问题木有!
?
?
4、? 好了,添加进去,一切OK!下面我们添加属性
就是这么一段代码
??????? private string _ListName = "部件测试";
??????? [Browsable(true), Category("显示列表"), FriendlyName("显示列表"), WebPartStorage(Storage.Shared), DefaultValue(""), Description("请输入显示列表")]
??????? public string ListName
??????? {
??????????? get
??????????? {
??????????????? return _ListName;
??????????? }
??????????? set
??????????? {
??????????????? _ListName = value;
??????????? }
??????? }
?
5然后就是现实的部分了,我们要用protected override void Render()函数
里面是
#region输出列表内容
??????????? SPSite mySite = SPContext.Current.Site;
??????????? SPWeb myWeb = SPContext.Current.Web;
??????????? SPList myList = myWeb.Lists[this.ListName];
??????????? SPQuery myQuery = new SPQuery();
??????????? myQuery.Query = "
??????????? SPListItemCollection myListItemCol;
??????????? myListItemCol = myList.GetItems(myQuery);
??????????? writer.Write("
……