private void InitFields() { try { list = SPContext.Current.List; } catch (Exception ex) { Trace.WriteLine(ex.ToString()); } var gridSettings = new GridGanttSettings(list); DisplayFormRedirect = gridSettings.DisplayFormRedirect; if (DisplayFormRedirect && ControlMode == SPControlMode.New && Page.Request[IsDialogParameter] != ModifiedType) { SPContext.Current.FormContext.OnSaveHandler += CustomHandler; } else if (!string.IsNullOrWhiteSpace(Page.Request[SourceParam])) { RedirectUrl = Page.Request[SourceParam]; SPContext.Current.FormContext.OnSaveHandler += HandleNewItemRecent; } else { SPContext.Current.FormContext.OnSaveHandler += HandleNewItemRecent; } if (gridSettings.DisplaySettings != string.Empty) { fieldProperties = ListDisplayUtils.ConvertFromString(gridSettings.DisplaySettings); } try { isWorkList = gridSettings.EnableWorkList; } catch (Exception ex) { Trace.WriteLine(ex.ToString()); } if (isWorkList) { SPPageContentManager.RegisterClientScriptInclude( this, GetType(), "WorkEngineStatusing", "/_layouts/15/epmlive/WorkEngineStatusing.js"); } if (list == null) { list = SPContext.Current.Web.Lists[new Guid(Page.Request[Listid])]; } }
protected override void OnLoad(EventArgs eventArgs) { if (eventArgs == null) { throw new ArgumentNullException(nameof(eventArgs)); } Title = "Editable Fields"; var gSettings = new GridGanttSettings(CurrentList); if (!string.IsNullOrWhiteSpace(gSettings.DisplaySettings)) { _fieldProperties = ListDisplayUtils.ConvertFromString(gSettings.DisplaySettings); } foreach (SPField field in CurrentList.Fields) { if (field.Reorderable && !field.Sealed) { _displayableFields.Add(field.Title, field); } else { if (MatchROFields(field.Id)) { _displayableFields.Add(field.Title, field); } } } foreach (SPGroup group in CurrentList.ParentWeb.Groups) { _groups.Add(group); } Cancel.PostBackUrl = $"~/_layouts/listedit.aspx?List={CurrentList.ID.ToString()}"; if (IsPostBack) { return; } _pageRender = PrepareRenderPage(); RegisterScript(); }
//protected override PickerEntity[] ResolveErrorBySearch(string unresolvedText) //{ // List<PickerEntity> entities = new List<PickerEntity>(); // using (SPWeb web = SPContext.Current.Site.OpenWeb(propBag.LookupWebID)) // { // SPList list = web.Lists[propBag.LookupListID]; // SPField field = list.Fields[propBag.LookupFieldName]; // string valueType = field.TypeAsString; // if (field.Type == SPFieldType.Calculated) // { // valueType = "Text"; // } // SPQuery query = new SPQuery(); // query.ViewAttributes = "Scope=\"Recursive\""; // query.Query = // string.Format( // "<Where><Contains><FieldRef ID=\"{0}\"/><Value Type=\"{1}\">{2}</Value></Contains></Where>", // propBag.LookupFieldName, valueType, unresolvedText); // SPListItemCollection items = list.GetItems(query); // foreach (SPListItem item in items) // { // entities.Add(this.GetEntity(item)); // } // } // return entities.ToArray(); //} private bool IsFieldEditable() { bool isEditable = true; string editableSettings = string.Empty; try { SPList list = SPContext.Current.List; SPField field = list.Fields.GetField(propBag.Field); GridGanttSettings gSettings = new GridGanttSettings(list); if (gSettings.DisplaySettings != "") { fieldProperties = ListDisplayUtils.ConvertFromString(gSettings.DisplaySettings); } switch (mode) { case SPControlMode.Edit: { try { editableSettings = fieldProperties[propBag.Field]["Editable"]; } catch { } if (!string.IsNullOrEmpty(editableSettings)) { if (editableSettings.Split(";".ToCharArray())[0].ToLower().Equals("never")) { isEditable = false; } else if (editableSettings.Split(";".ToCharArray())[0].ToLower().Equals("where")) { string where = editableSettings.Split(";".ToCharArray())[1]; string conditionField = string.Empty; string condition = string.Empty; string group = string.Empty; string valueCondition = string.Empty; if (where.Equals("[Me]")) { condition = editableSettings.Split(";".ToCharArray())[2]; group = editableSettings.Split(";".ToCharArray())[3]; } else //[Field] { conditionField = editableSettings.Split(";".ToCharArray())[2]; condition = editableSettings.Split(";".ToCharArray())[3]; valueCondition = editableSettings.Split(";".ToCharArray())[4]; } isEditable = EditableFieldDisplay.RenderField(field, where, conditionField, condition, group, valueCondition, SPContext.Current.ListItem); } } } break; } } catch { } return(isEditable); }