思路:先将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
显示效果如下图: