JOJ
踏踏实实做人,认认真真做事!放纵自己就是毁灭自己!
/// <summary>
    /// 添加字段
    /// </summary>
    /// <param name="fields">添加到的字段集合</param>
    /// <param name="fieldDisplayName">字段名称</param>
    /// <param name="fieldType">字段类型</param>
    /// <param name="defaultVal">默认值</param>
    /// <param name="hidden">是否隐藏</param>
    /// <param name="allowdeletion">是否允许删除</param>
    /// <returns></returns>
    public void CreateField(SPFieldCollection fields, string fieldDisplayName, SPFieldType fieldType, string defaultVal, bool hidden, bool
         allowdeletion)
    {
        if (fieldDisplayName == null) throw new ArgumentNullException("fieldDisplayName");
        //判断是否已经存在该字段
        bool isExists = fields.ContainsField(fieldDisplayName);
        //如果字段存在则不创建
        if (isExists) return;
        //false表示值可以为空
        fields.Add(fieldDisplayName, fieldType, false);
        SPField field = new SPField(fields, fieldDisplayName)
                            {
                                AllowDeletion = allowdeletion,
                                DefaultValue = defaultVal
                            };
        //记得调用Update();方法
        field.Update();
    }

    protected void 创建字段_Click(object sender, EventArgs e)
    {
        using (SPSite site = new SPSite (siteUrl))
        {
            using (SPWeb web = site.RootWeb)
            {
                SPList list = web.Lists["KB"];
                web.AllowUnsafeUpdates = true; //记得设置这个属性哦!
                CreateField(list.Fields, "MyTestAdd", SPFieldType.Text, "Test", false, false);
            }
        }
    }

当然,上面的代码只是简单的实现了添加字段,但是如果字段类型为SPFieldType.User的时候,defaultVal必须写AD里面的用户名,不然字段可以创建成功,你在sharepoint里面使用的时候会报错!

Technorati 标签: sharepoint,Field
posted on 2010-06-24 15:46  JoinJ  阅读(327)  评论(0编辑  收藏  举报