protected override void CreateChildControls() { if (SPContext.Current.SiteFeatures[new Guid(Constants.ASPLFeature.FeatureID)] == null) { base.CreateChildControls(); return; } this.Controls.Clear(); try { if (this.ControlTemplate == null) { throw new ArgumentException("Could not find ListFieldIterator control template."); } AddLiteralControl(RendringUtil.RenderTabs(allTabs)); string allFields = string.Empty; for (int i = 0; i < base.Fields.Count; i++) { SPField spField = base.Fields[i]; SPControlMode ctrlMode = SPControlMode.Invalid; bool isFieldHidden = false; // Permission matrix execution... ctrlMode = PermissionHandler.Handle(spField.InternalName, this.ControlMode, allTabs, allFieldPermissions, SPContext.Current.Web.CurrentUser, out isFieldHidden); if (this.ControlMode == SPControlMode.New && allFieldDefaults != null) { RendringUtil.SetDefault(spField, allFieldDefaults); } if (!this.IsFieldExcluded(spField) && !spField.Hidden && !spField.ReadOnlyField && !isFieldHidden) { ASPLTemplateContainer tempCon = new ASPLTemplateContainer(); this.Controls.Add(tempCon.Template); tempCon.FieldName = spField.InternalName; tempCon.ControlMode = ctrlMode; this.ControlTemplate.InstantiateIn(tempCon.Template); allFields += "'" + spField.InternalName + "~Show',"; LiteralControl templateTR = tempCon.Controls[0] as LiteralControl; templateTR.Text = templateTR.Text.Replace("tr", "tr id='" + spField.InternalName + "~Show" + "'"); } } AddLiteralControl("<script type='text/javascript'> var allFieldsArray = new Array(" + allFields.Trim(',') + ");</script>"); } catch (Exception exp) { this.Controls.Clear(); base.CreateChildControls(); Logging.Log(exp); } }
protected override void OnInit(EventArgs e) { try { if (SPContext.Current.SiteFeatures[new Guid(Constants.ASPLFeature.FeatureID)] == null) { base.OnInit(e); return; } RendringUtil.RenderResources(this.Page.Header); allTabs = Tabs.LoadTabs(GetConfigFile(Constants.ConfigFile.TabSettingFile)); allFieldPermissions = FieldPermissions.LoadFieldPermissions(GetConfigFile(Constants.ConfigFile.FieldPermissionFile)); allFieldDefaults = FieldDefaults.LoadFieldDefaults(GetConfigFile(Constants.ConfigFile.FieldDefaultFile)); #region Testing data //allTabs = new Tabs(); //Tab t1 = new Tab(0, "Tab1", "foo"); //t1.Fields.Add(new Field("Title")); //t1.Fields.Add(new Field("Predecessors")); //t1.Fields.Add(new Field("Priority")); //t1.Fields.Add(new Field("Status")); //t1.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //t1.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Deny, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //t1.IsFirst = true; //allTabs.Add(t1); //Tab t2 = new Tab(0, "Tab2", "foo"); //t2.Fields.Add(new Field("PercentComplete")); //t2.Fields.Add(new Field("DueDate")); //t2.Fields.Add(new Field("Title")); //t2.Fields.Add(new Field("Body")); //t2.IsSelected = true; //t2.Permissions.Add(new TabPermission(false, Enums.PermissionLevel.Deny, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //TabPermission p3 = new TabPermission(false, Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None); //p3.Conditions.Add(new Condition(new Field("Title"), Enums.Operator.Contains, "Make write")); //t2.Permissions.Add(p3); //allTabs.Add(t2); //Tab t3 = new Tab(0, "Tab3", "foo"); //t3.Fields.Add(new Field("PercentComplete")); //t3.Fields.Add(new Field("DueDate")); //t3.Fields.Add(new Field("Predecessors")); //t3.IsLast = true; //allTabs.Add(t3); //allFieldPermissions = new FieldPermissions(); //allFieldPermissions.Add(new FieldPermission(new Field("Title"), Enums.PermissionLevel.Write, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //allFieldPermissions.Add(new FieldPermission(new Field("Predecessors"), Enums.PermissionLevel.Read, new List<Enums.SPForms>() { Enums.SPForms.New, Enums.SPForms.Edit }, "", Enums.Operator.None)); //allFieldDefaults = new FieldDefaults(); //allFieldDefaults.Add(new FieldDefault(new Field("Title"), "", Enums.Operator.None, "", "You cant touch me!!")); //allTabs = null; #endregion this.updatePanelIterator = new UpdatePanel(); this.updatePanelIterator.ID = "updatePanelIterator"; this.updatePanelIterator.RenderMode = UpdatePanelRenderMode.Inline; if (this.RequestResultTabsInfoHidden == null) { this.RequestResultTabsInfoHidden = new HiddenField(); } this.RequestResultTabsInfoHidden.ID = "RequestResultTabsInfoHidden"; this.RequestResultTabsInfoHidden.Value = (allTabs == null ? "null" : allTabs.ToHiddenFldValue()); this.updatePanelIterator.ContentTemplateContainer.Controls.Add(this.RequestResultTabsInfoHidden); Panel panel = new Panel(); panel.Style.Add(HtmlTextWriterStyle.Position, "absolute"); panel.Style.Add(HtmlTextWriterStyle.Width, "100%"); this.Controls.Add(panel); panel.Controls.Add(this.updatePanelIterator); panel.Controls.Add(UpdateTemplate.GetUpdateProgress(this.updatePanelIterator.ID)); CreateHelperControls(); base.OnInit(e); // register save handler if not in display mode and form is posted back if ((Page.IsPostBack) && (ControlMode != SPControlMode.Display)) { _formContext.OnSaveHandler += new EventHandler(SaveHandler); } } catch (Exception exp) { base.OnInit(e); Logging.Log(exp); } }