/// <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