با سلام
در این پست من قصد دارم تا کد هایی ساده و کم حجمی رو معرفی کنم که برنامه نویس های شیر پوینت بتونن از این کد ها در پروژه ها شون استفاده کنن
با سلام
در این پست من قصد دارم تا کد هایی ساده و کم حجمی رو معرفی کنم که برنامه نویس های شیر پوینت بتونن از این کد ها در پروژه ها شون استفاده کنن
معمولا بیشترین چیزی که برنامه نویس شیرپوینت با هاش موجه میشه ست کردن پرمیشن ها در سطح آیتم هست برای این منظور از یک متد مانند مثال زیر استفاده می کنیم
public static void SetListItemPermission(SPListItem ListItem, String UserName, String Permission, bool ClearPreviousPermissions)
{
SPWeb Web = ListItem.Web;
Web.AllowUnsafeUpdates = true;
if (!ListItem.HasUniqueRoleAssignments)
ListItem.BreakRoleInheritance(true);
SPPrincipal UserOrGroup = Web.AllUsers[UserName];
SPRoleAssignment roleAssignment = new SPRoleAssignment(UserOrGroup);
SPRoleDefinition roleDefinition = Web.RoleDefinitions[Permission];
SPRoleDefinitionBindingCollection RoleDefinitionBindings = roleAssignment.RoleDefinitionBindings;
if (ClearPreviousPermissions)
{
for (int i = ListItem.RoleAssignments.Count; i > 0; i--)
{
ListItem.RoleAssignments.Remove(ListItem.RoleAssig nments.Count - 1);
}
}
RoleDefinitionBindings.Add(roleDefinition);
ListItem.RoleAssignments.Remove(UserOrGroup);
ListItem.RoleAssignments.Add(roleAssignment);
}
ایجاد site Column با کد:
web.Fields.Add(name, SPFieldType.Text, req);
به جای name نام فیلد و به جای req الزامی بودن فیلد را ایگزین کنید.
در صورتی که خصوصیت های دیگری از فیلد را می خواهید مقدار دهی کنید از کد زیر استفاده کنید
web.Fields[name].Group = "HN_Group";
web.Fields[name].Description = "Desc";
web.Fields[name].Update();
البته لازم به ذکر است که در صورتی که خصوصیات منحصر به فرد یک فیلد خاص را میخواهید مقدار دهی کنید (مثلا خاصیت انتخاب چندگانه برای کاربران) ابتدا باید فیلد مورد نظر را تبدیل کنید
SPFieldUser u = (SPFieldUser)web.Fields[name];
u.AllowMultipleValues = true;
ایجاد LookUp Column :
برای ایجاد فیلد لوک آپ از این روش استفاده کنید
web.Fields.AddLookup(name, List.ID, web.ID, req);
SPFieldLookup l = (SPFieldLookup)web.Fields[name];
l.Description = "desc";
l.Group = "HN_Columns";
l.LookupField = "LookupField"
l.AllowMultipleValues = true;
web.Fields[name].Update();
نکته مهم این که در صورتی توی شیرپوینت بخواهید یک فیلد لوک آپ بسازید بر روی لیستی که در سایت دیگری وجود دارد به صورت پیشفرض چنین امکانی با صفحات شیرپوینتی وجود ندارد و شما یا باید از ابزار های جانبی استفاده کنید یا از طریف کد فیلد مورد نظر خود را تعریف کنید.
ایجاد Content Type :
SPContentType spct = new SPContentType(web.ContentTypes["ParentName"], web.ContentTypes, "CTname");
spct.Group = "CTGroup";
web.ContentTypes.Add(spct);
برای اضافه کردن فیلد ها به Content Type :
SPFieldLink fieldLink = new SPFieldLink(web.Fields["FieldName"]);
web.ContentTypes["CTname"].FieldLinks.Add(fieldLink);
web.ContentTypes["CTname"].Update(true);
آخرین ویرایش به وسیله حسین نیک پور : یک شنبه 24 آذر 1392 در 09:35 صبح
ایجاد لیست :
Guid listid = sweb.Lists.Add("ListName","ListDescription", sweb.ListTemplates["Custom List"]);
SPList lst = sweb.Lists[listid];
lst.EnableAttachments = false;
lst.OnQuickLaunch = true;
lst.Update()
این موارد هم واقعا مفید هستند:
متد استخراج یا یافتن لیست و فیلد توسط مقادیر مختلف در شرپوینت