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

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();

        }

    }

}

运行结果如图:

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 

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();

        }

    }

}

运行结果

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 

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();

        }

    }

}

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 

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();

        }

    }

}

运行结果如下:

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 4    列表记录操作

1) 添加一个列表employee,添加三个列表栏目,即内容类型,添加三个项目信息,如图

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 2)  UI设计如图

深入MOSS开发之二   Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 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  )  运行结果

深入MOSS开发之二Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 更改2号员工信息,结果如下

深入MOSS开发之二Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客

 删除2号员工,结果如正下:

深入MOSS开发之二Site、Web、 List 、Item 、Document、 Feature开发 - ywjwest - ywjwest的博客
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值