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号员工,结果如正下: