sharepoint 代码创建列表

public void CreateTask(int newID)
        {
            if (newID != 0)
            {
                using (SPWeb spWeb = new SPSite(pmUrl).OpenWeb())
                {
                    spWeb.AllowUnsafeUpdates = true;
                    SPListTemplate CustomTemplate = null;
                    SPListTemplateCollection ListTemplateCollection = spWeb.Site.GetCustomListTemplates(spWeb);
                    foreach (SPListTemplate template in ListTemplateCollection)
                    {
                        if (template.InternalName == "customTempList.stp")
                        {
                            CustomTemplate = template;
                            break;
                        }
                    }

                    SPList departList = spWeb.Lists["Department"];
                    //创建新列表
                    Guid newListGuid = spWeb.Lists.Add(newID.ToString(), "", CustomTemplate);
                    SPList newList = spWeb.Lists[newListGuid];
                    using (SPWeb tempWeb = new SPSite(tempUrl).OpenWeb())
                    {
                        SPList spList = tempWeb.Lists[drtList.SelectedItem.Value.ToString()];
                        SPFieldCollection spFieldColl = spList.Fields;
                        foreach (SPField spField in spFieldColl)
                        {
                            if (spField.FromBaseType == false)
                            {
                                string strStaticName = spField.StaticName;
                                if (spField.Type == SPFieldType.Lookup)
                                {
                                    Guid lookupGuid = new Guid(departList.ID.ToString()); //取得这个Lookup数据源List的Guid
                                    newList.Fields.AddLookup(strStaticName, lookupGuid, false);
                                    SPFieldLookup splookup = newList.Fields[strStaticName] as SPFieldLookup; //绑定数据List到Lookup字段
                                    splookup.LookupField = departList.Fields["标题"].StaticName;
                                    splookup.AllowMultipleValues = true;
                                    splookup.Update();
                                }
                                else if (spField.Type == SPFieldType.User)
                                {
                                    newList.Fields.Add(strStaticName, spField.Type, false);
                                    SPFieldUser spFieldUser = newList.Fields[strStaticName] as SPFieldUser;
                                    spFieldUser.AllowMultipleValues = true;        //允许多个值
                                    spFieldUser.Update();
                                }
                                else if (spField.Type == SPFieldType.Choice)
                                {
                                    newList.Fields.Add(strStaticName, spField.Type, false);
                                    SPFieldChoice spFieldChoice = newList.Fields[strStaticName] as SPFieldChoice;
                                    SPFieldChoice tempFieldChoice = spField as SPFieldChoice;
                                    foreach (string choice in tempFieldChoice.Choices)
                                    {
                                        spFieldChoice.AddChoice(choice);
                                    }
                                    spFieldChoice.Update();
                                }
                                else
                                {
                                    newList.Fields.Add(strStaticName, spField.Type, false);
                                }
                            }
                        }
                        newList.Fields.Add("Version", SPFieldType.Number, false);
                        newList.Fields.Add("VersionState", SPFieldType.Choice, false);
                        SPFieldChoice VersionStateChoice = newList.Fields["VersionState"] as SPFieldChoice;
                        VersionStateChoice.AddChoice("草稿");
                        VersionStateChoice.AddChoice("发布");
                        VersionStateChoice.Update();

                        //---------------------------------
                        newList.Fields.Add("SubmitState", SPFieldType.Choice, false);
                        SPFieldChoice SubmitStateChoice = newList.Fields["SubmitState"] as SPFieldChoice;
                        SubmitStateChoice.AddChoice("待提交");
                        SubmitStateChoice.AddChoice("已提交");
                        SubmitStateChoice.DefaultValue = "待提交";
                        SubmitStateChoice.Update();
                        //----------------------------------

                        newList.Fields.Add("YesNoEdit", SPFieldType.Boolean, false);
                        SPFieldBoolean YesNoEdit = newList.Fields["YesNoEdit"] as SPFieldBoolean;
                        YesNoEdit.DefaultValue = "0";
                        YesNoEdit.Update();
                        newList.Fields.Add("Schedule", SPFieldType.Number, false);
                        newList.Fields.Add("ApprovalStatus", SPFieldType.Boolean, false);
                        SPFieldBoolean ApprovalStatus = newList.Fields["ApprovalStatus"] as SPFieldBoolean;
                        ApprovalStatus.DefaultValue = "0";
                        ApprovalStatus.Update();

                        newList.Fields.Add("ImportantNode", SPFieldType.Boolean, false);
                        SPFieldBoolean ImportantNode = newList.Fields["ImportantNode"] as SPFieldBoolean;
                        ImportantNode.DefaultValue = "0";
                        ImportantNode.Update();

                        newList.Fields.Add("ShowHome", SPFieldType.Boolean, false);
                        SPFieldBoolean ShowHome = newList.Fields["ShowHome"] as SPFieldBoolean;
                        ShowHome.DefaultValue = "0";
                        ShowHome.Update();
                        //--任务负责人、项目ID、项目名称、项目类型
                        newList.Fields.Add("AssignedTotm", SPFieldType.Text, false);
                        newList.Fields.Add("ProjectId", SPFieldType.Number, false);
                        newList.Fields.Add("ProjectName", SPFieldType.Text, false);
                        newList.Fields.Add("Type", SPFieldType.Number, false);
                        //--
                        //--关联ID
                        newList.Fields.Add("OldVerssionID", SPFieldType.Number, false);
                        //--
                        newList.Update();
                        SPList sptempList = tempWeb.Lists[drtList.SelectedItem.Value.ToString()];
                        SPQuery spQuery = new SPQuery();
                        spQuery.Query = @"<OrderBy>
                                              <FieldRef Name='OrderID' />
                                           </OrderBy>";
                        SPListItemCollection sptempColl = sptempList.GetItems(spQuery);
                        //SPListItemCollection sptempColl = sptempList.Items;
                        SPFieldCollection newFields = spList.Fields;
                        foreach (SPListItem itemtemp in sptempColl)
                        {
                            SPListItem newItem = newList.AddItem();
                            foreach (SPField spField in newFields)
                            {
                                if (spField.FromBaseType == false)
                                {
                                    string strStaticName = spField.StaticName;
                                    newItem[strStaticName] = itemtemp[strStaticName];
                                }
                            }
                            newItem["Status"] = "进行中";
                            newItem["YesNoEdit"] = false;
                            newItem["ApprovalStatus"] = false;
                            newItem["ApprovalStatus"] = false;
                            newItem["ShowHome"] = false;
                            newItem["Version"] = 0;
                            newItem["VersionState"] = "草稿";
                            newItem.Update();

                            if (Convert.ToInt32(newItem["PID"]) != 0)
                            {

                                int orderid = 0;
                                foreach (SPListItem item1 in sptempColl)
                                {
                                    if (Convert.ToInt32(item1["ID"]) == Convert.ToInt32(newItem["PID"]))
                                    {
                                        orderid = Convert.ToInt32(item1["OrderID"]);
                                        break;
                                    }
                                }
                                string pid = "";
                                SPListItemCollection itemColl2 = newList.GetItems();
                                foreach (SPListItem item1 in itemColl2)
                                {
                                    if (Convert.ToInt32(item1["OrderID"]) == orderid)
                                    {
                                        pid = item1["ID"].ToString();
                                        break;
                                    }
                                }
                                newItem["PID"] = pid;
                                spWeb.AllowUnsafeUpdates = true;
                                newItem.Update();
                            }
                            else
                            {
                                newItem["ImportantNode"] = true;
                                newItem.Update();
                            }
                        }
                    }
                }
            }
        }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值