MOSS(29)深入MOSS开发之二>>>>Site、Web、 List 、Item 、Document、 Feature开发
MOSS管理开发 2011-01-06 12:10:07 阅读28 评论0 字号:大中小 订阅
1 使用spweb创建网站,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace CreateWeb
{
class Program
{
static void Main(string[] args)
{
SPSite parentSite = new SPSite("http://win2003");
SPWebTemplateCollection webTemplates = parentSite.GetWebTemplates(2052);
SPWebTemplate blogTemplate = webTemplates["BLOG#0"];
SPWeb blogWeb = parentSite.AllWebs.Add(
"blog",
"博客",
"这是一个全新的个人博客网站",
2052,
blogTemplate,
false,
false);
Console.WriteLine("Blog created.");
Console.ReadLine();
}
}
}
运行结果如图:
2 使用splist管理列表
A 获得根网站的列表
代码如下
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
namespace MOSSConsole
{
class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite("http://win2003");
//两种方法都可以找到根网站
//SPWeb web = site.AllWebs[0];
SPWeb web = site.RootWeb;
//遍历所有列表
foreach (SPList list in web.Lists)
{
Console.WriteLine("{0}{1} - {2} items.",
list.Hidden ? "*" : "",
list.Title, list.ItemCount);
Console.WriteLine("Created by {0}", list.Author.Name);
Console.WriteLine("{0}", list.Description);
Console.WriteLine("----------------------------------------------------");
}
Console.WriteLine("/n{0} lists found.", web.Lists.Count);
Console.ReadLine();
}
}
}
运行结果
BB 获得指定网站的列表,如上面创建的博客网站,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace BlogWebSPList
{
class Program
{
static void Main(string[] args)
{
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["blog"];
//遍历所有列表
foreach (SPList list in web.Lists)
{
Console.WriteLine("{0}{1} - {2} items.",
list.Hidden ? "*" : "",
list.Title, list.ItemCount);
Console.WriteLine("Created by {0}", list.Author.Name);
Console.WriteLine("{0}", list.Description);
Console.WriteLine("----------------------------------------------------");
}
Console.WriteLine("/n{0} lists found.", web.Lists.Count);
Console.ReadLine();
}
}
}
3 列表的更新,添加,删除,代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
namespace SPListAddDeleteUpdate
{
class Program
{
static void Main(string[] args)
{
SPSite rootSite = new SPSite("http://win2003");
SPWeb rootWeb = rootSite.AllWebs["blog"];
// 如果您的MOSS是英文版,则模板名要用“Tasks”
SPListTemplate sourceTemplate = rootWeb.ListTemplates["任务"];
Guid newListGuid = rootWeb.Lists.Add("热点",
"关注热点", sourceTemplate);
Guid secondNewListGuid = rootWeb.Lists.Add("Second Task List",
"Second Task List", sourceTemplate);
SPList newList = rootWeb.Lists[newListGuid];
SPList secondNewList = rootWeb.Lists[secondNewListGuid];
secondNewList.Delete();
newList.Description = "当前北京发展热点";
newList.Update();
Console.WriteLine("List manipulations complete.");
Console.ReadLine();
}
}
}
运行结果如下:
4 列表记录操作
1) 添加一个列表employee,添加三个列表栏目,即内容类型,添加三个项目信息,如图
2) UI设计如图
3) html代码
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="Demo._04._07._Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div style="border:2px solid red ; margin-left:auto; margin-right:auto">
<div style="float:left;width:45%; margin:1px; border:2px solid blue">
操作方法:
<asp:DropDownList ID="ddlCommand" runat="server" Height="21px" Width="124px">
</asp:DropDownList><br /><hr />
员工编号:
<asp:DropDownList ID="ddlID" runat="server" Height="16px" Width="124px"
AutoPostBack="True" onselectedindexchanged="ddlID_SelectedIndexChanged">
<asp:ListItem></asp:ListItem>
</asp:DropDownList><br /><hr />
员工姓名:<asp:TextBox ID="txtEmpName" runat="server"></asp:TextBox><br /><hr />
工作职位:<asp:TextBox ID="txtJobTitle" runat="server"></asp:TextBox><br /><hr />
雇佣时间:<asp:TextBox ID="txtHireDate" runat="server"></asp:TextBox><br /><hr />
</div>
<div style="float:right;width:45%; margin:1px; border:2px solid blue">
<br />
<asp:GridView ID="GridView1" runat="server">
</asp:GridView>
<hr /><br />
</div>
<br />
<div>
<asp:Label ID="lblReturnMsg" runat="server"></asp:Label><br /><hr />
</div>
<div style="clear:both;border:2px solid blue ">
<asp:Button ID="Button1" runat="server" Text="开始执行" OnClick="Button1_Click" />
</div>
</div>
</form>
</body>
</html>
4) C#后台代码如下:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.SharePoint;
namespace SPListAdmin
{
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//初始化下拉列表框三个选项
ddlCommand.Items.Add("Delete");
ddlCommand.Items.Add("New");
ddlCommand.Items.Add("Update");
ddlCommand.SelectedIndex = 2;
GetIDs();
setFields();
RefreshEmployeeList();
}
}
/// <summary>
/// 获取当前列表中的所有item信息
/// </summary>
/// <returns></returns>
DataTable GetAllEmployees()
{
//得到网站集,网站,指定列表信息
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["Imposernate"];
SPList employees = web.Lists["Employee"];
DataTable dtEmployees = employees.Items.GetDataTable();
DataTable dtEmployeesNew = new DataTable("Employees");
//新表添加四个字段
dtEmployeesNew.Columns.Add("ID");
dtEmployeesNew.Columns.Add("EmpName");
dtEmployeesNew.Columns.Add("Title");
dtEmployeesNew.Columns.Add("HireDate");
foreach (DataRow drEmployee in dtEmployees.Rows)
{
try
{
DataRow drEmployeeNew = dtEmployeesNew.NewRow();
drEmployeeNew["ID"] = drEmployee["ID"].ToString();
drEmployeeNew["EmpName"] = drEmployee["EmpName"].ToString();
drEmployeeNew["Title"] = drEmployee["Title"].ToString();
drEmployeeNew["HireDate"] = drEmployee["HireDate"].ToString();
dtEmployeesNew.Rows.Add(drEmployeeNew);
dtEmployeesNew.AcceptChanges();
}
catch { }
}
return dtEmployeesNew;
}
/// <summary>
/// 得到所有列表项item的ID,并将ID添加到下拉列表框中
/// </summary>
/// <returns></returns>
DropDownList GetIDs()
{
ddlID.Items.Clear();
if (ddlCommand.SelectedValue == "New")
{
ddlID.Enabled = false;
ddlID.Items.Add(new ListItem("N/A"));
}
else
{
ddlID.Enabled = true;
DataTable dtEmployess = new DataTable();
dtEmployess = GetAllEmployees();
foreach (DataRow drEmployee in dtEmployess.Rows)
{
string idstr = drEmployee["ID"].ToString();
ListItem li = new ListItem(idstr,idstr);
ddlID.Items.Add(li);
}
}
ddlID.SelectedIndex = 1;
return ddlID;
}
/// <summary>
/// 刷新信息
/// </summary>
void RefreshEmployeeList()
{
DataTable dtEmployeeListData = new DataTable();
dtEmployeeListData = GetAllEmployees();
GridView1.DataSource = dtEmployeeListData;
GridView1.DataBind();
int ID = int.Parse(ddlID.SelectedValue);
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["Imposernate"];
SPList list = web.Lists["Employee"];
SPListItem item = list.Items.GetItemById(ID);
txtJobTitle.Text = item["JobTitle"].ToString();
txtEmpName.Text = item["EmpName"].ToString();
txtHireDate.Text = item["HireDate"].ToString();
}
/// <summary>
/// 设制各字段的值
/// </summary>
private void setFields()
{
txtEmpName.Text = "";
txtHireDate.Text = "";
txtJobTitle.Text = "";
lblReturnMsg.Text = "";
ddlID.Enabled = true;
if (ddlCommand.SelectedValue == "Delete")
{
txtEmpName.Enabled = false;
txtHireDate.Enabled = false;
txtJobTitle.Enabled = false;
}
else
{
if (ddlCommand.SelectedValue == "New")
ddlID.Enabled = false;
else
{
ddlID.Enabled = true;
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["Imposernate"];
SPList list = web.Lists["Employee"];
int ID = int.Parse(ddlID.SelectedValue);
//根据ID得到各个item的值
SPListItem item = list.GetItemById(ID);
txtEmpName.Text = item["EmpName"].ToString();
txtHireDate.Text = item["HireDate"].ToString();
txtJobTitle.Text = item["Title"].ToString();
}
txtEmpName.Enabled = true;
txtHireDate.Enabled = true;
txtJobTitle.Enabled = true;
}
}
/// <summary>
/// 执行各项操作
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
try
{
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["Imposernate"];
SPList list = web.Lists["Employee"];
SPListItem item;
int ID;
lblReturnMsg.Text = "";
web.AllowUnsafeUpdates = true;
switch (ddlCommand.SelectedValue)
{
//如果是新建,则添加记录item
case "New":
item = list.Items.Add();
item["EmpName"] = txtEmpName.Text;
item["Title"] = txtJobTitle.Text;
item["HireDate"] = txtHireDate.Text;
item.Update();
lblReturnMsg.Text = "'" + txtEmpName.Text + "' has been successfuly added";
break;
case "Update":
//如果是更新,则根据ID进行更新各项目Item的值
ID = int.Parse(ddlID.SelectedValue);
item = list.GetItemById(ID);
item["EmpName"] = txtEmpName.Text;
item["Title"] = txtJobTitle.Text;
item["HireDate"] = txtHireDate.Text;
item.Update();
lblReturnMsg.Text = "'" + txtEmpName.Text + "' has been successfuly updated";
break;
case "Delete":
ID = int.Parse(ddlID.SelectedValue);
item = list.GetItemById(ID);
string empName = item["EmpName"].ToString();
list.Items.DeleteItemById(ID);
lblReturnMsg.Text = "'" + empName + "' has been successfuly deleted";
break;
}
//列表更新
list.Update();
GetIDs();
setFields();
RefreshEmployeeList();
}
catch (Exception ex)
{
lblReturnMsg.Text = ex.Message;
}
}
protected void ddlID_SelectedIndexChanged(object sender, EventArgs e)
{
RefreshEmployeeList();
int ID = int.Parse(ddlID.SelectedValue);
SPSite site = new SPSite("http://win2003");
SPWeb web = site.AllWebs["Imposernate"];
SPList list = web.Lists["Employee"];
SPListItem item = list.Items.GetItemById(ID);
txtJobTitle.Text = item["JobTitle"].ToString();
txtEmpName.Text = item["EmpName"].ToString();
txtHireDate.Text = item["HireDate"].ToString();
}
}
}
5 ) 运行结果
更改2号员工信息,结果如下
删除2号员工,结果如正下: