sharepoint vs操作site、web、list、item ....

    技术2022-05-20  41

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


    最新回复(0)