MOSS2007开发Demo系列(2)——用GridView显示SharePoint网站中SPList的数据(SPList)

思路:先将SPList中SPListItems数据读入DataTable,然后绑定到GridView。类似的,可以绑定到其他ASP.Net数据控件。

说明:在网站集http://vmmoss1:38583/的首要网站下已存在一个名为员工列表的SPList。结构如下图。

 

创建用户控件GridViewList.ascx,在ascx页面拖一个GridView上去,cs页面代码如下。

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;

public partial class GridViewSPList : System.Web.UI.UserControl
{
    protected void Page_Load(object sender, EventArgs e)
    {
        //将DataTable数据绑定到GridView
        GridView1.DataSource = CreateDataTable();
        GridView1.DataBind();
    }

    //创建DataTable作为SPList的数据容器和GridView的数据源
    //读取SPList数据填充DataTable
    DataTable CreateDataTable()
    {
        //取得目标SPList
        SPWeb myWeb = new SPSite("http://vmmoss1:38583").OpenWeb/();
        SPList myList = myWeb.Lists["员工列表"];

        //定义DataTable并创建其表结构
        DataTable myTable = new DataTable();
        myTable.Columns.Add(new DataColumn("姓名"));
        myTable.Columns.Add(new DataColumn("性别"));
        myTable.Columns.Add(new DataColumn("出生日期"));
        myTable.Columns.Add(new DataColumn("部门编号"));

        //读取SPList中的SPListItem,填充到DataTable
        foreach (SPListItem theItem in myList.Items)
        {
            DataRow theRow = myTable.NewRow();
            theRow["姓名"] = theItem["姓名"].ToString();
            theRow["性别"] = theItem["性别"].ToString();
            theRow["出生日期"] = Convert.ToDateTime(theItem["出生日期"]).ToShortDateString();
            theRow["部门编号"] = theItem["部门编号"].ToString();
            myTable.Rows.Add(theRow);
        }

        //返回DataTable
        return myTable;
    }
}

用户控件FolderTree1.ascx ,FolderTree2.ascx 做好后可以用WebPart包装器QuickPart部署到SharePoint网站,或者直接创建页面部署到SharePoint服务器上。

完整代码下载:http://moss2007demos.googlecode.com/files/Demo2.rar

显示效果如下图:

posted @ 2008-12-15 17:41  浪漫稻草人  阅读(438)  评论(0编辑  收藏  举报