65.9K
CodeProject 正在变化。 阅读更多。
Home

访问 SharePoint 对象模型 - 初学者概述

2008年7月13日

CPOL

3分钟阅读

viewsIcon

79027

downloadIcon

478

访问 SharePoint 对象模型 - 初学者概述

引言

SharePoint 为 .Net 开发者提供了一个坚实的基础,用于编写代码并扩展 SharePoint 功能。 由于 SharePoint 是基于 ASP.NET 2.0 开发的,并且拥有强大的 .Net 类库代码库,许多开发者现在可以利用它们并创建出色的应用程序,从而利用 SharePoint 的功能和库。 在本教程中,我将解释如何使用 Visual Studio 打开 SharePoint 站点,然后连接到 SharePoint 内的文档库,并获取文档库的创建日期。 此功能在 SharePoint 默认情况下没有提供,因此我们需要进行自定义开发才能找到此信息。

使用代码

让我们直接进入代码。 我们需要做的第一件事是设置我们的开发环境。 这有点棘手。 我们可以做几件事。

  • 设置安装了 SharePoint 门户的开发工具
  • 创建 SharePoint 的虚拟 PC 并安装 SharePoint
  • 将 SharePoint dll 复制到您的开发 PC,并在 Visual Studio 中引用这些 dll,但请记住,调试将非常困难

好的,现在在我的场景中,我使用了一个虚拟 PC 和 SharePoint VHD 启动它并打开了 Visual Studio。 我引用了 Microsoft.SharePoint dll 并在代码隐藏中也引用了它。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.SharePoint;

我在表单上放置了几个下拉列表和一个文本框,用户将在其中输入其门户名称。 一旦输入门户地址,用户将单击连接。 此事件将使用门户上创建的所有站点填充下拉列表。

private void cmdConnect_Click(object sender, EventArgs e)
        {
            cboLists.Items.Clear();
            SPSite mysite = new SPSite(txtURL.Text.Trim());
            foreach (SPWeb myweb in mysite.AllWebs)
            {
                cboSites.Items.Add(myweb.Title);
            }
        }

如上所示,我使用了 SPSite 类来打开一个站点,并将该站点的 url 作为构造函数传递。 一旦打开,此站点类就有一个 web 集合类。 我循环遍历了所有已创建的 web 并将它们列在下拉列表中。

现在用户将选择文档库所在的站点。 在选定索引更改时,我使用所有列表和库填充了下一个下拉列表。

        private void cboSites_SelectedIndexChanged(object sender, EventArgs e)
        {
            mysite2 = new SPSite(txtURL.Text.Trim());
            myweb2 = mysite2.AllWebs[cboSites.SelectedItem.ToString()];
            foreach (SPList lst in myweb2.Lists)
            {
                cboLists.Items.Add(lst.Title);
            }           
        }

刚才发生的事情是最有趣的。 在这里,我们打开了站点,从用户选择的下拉列表中获取了 web,并将其放入 SPWeb 类中。 SPWeb 类现在包含您站点中的所有文档库和列表。 正如您所看到的,我们正在循环遍历 spweb 中的列表集合。 我们在循环时将所有列表和库添加到下拉列表中。

现在,一旦用户选择了库,他将在标签控件中看到该库的创建日期。

private void cboLists_SelectedIndexChanged(object sender, EventArgs e)
        {
            SPList mylist = myweb2.Lists[cboLists.SelectedItem.ToString()];
            DateTime datecreated = mylist.Created;
            lblDate.Text = datecreated.ToShortDateString();
        }

如您所见,我们在 SPList 类中获得了列表,并利用其 created 属性来查找列表创建日期。

关注点

这里最感兴趣的部分是了解如何连接到一个站点,打开它的 web 并遍历它的列表和库。 然后看看如何获取列表和库的属性。 SPSite、SPWeb 和 SPList 是我们用来实现目标的几个主要类。 在我的下一篇文章中,我将解释如何更进一步并访问单个列表项。

因此,对象模型看起来像

SPSite

SPWeb

SPList

SPListItem

好的,现在我要告辞了 :-)

Arif Habib Shadan

历史

没有旧版本的文档

© . All rights reserved.