示例#1
0
        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 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);
            }
        }