示例#1
0
        public void OnSaveChange(Microsoft.SharePoint.SPField field, bool isNewField)
        {
            ValidateSettings();

            this.Url              = txtUrl.Text.Trim();
            this.List             = (ddlList.SelectedIndex > 0) ? ddlList.SelectedValue : "";
            this.Field            = (ddlField.SelectedIndex > 0) ? ddlField.SelectedValue : "";
            this.ParentField      = (ddlParentField.SelectedIndex > 0) ? ddlParentField.SelectedValue : "";
            this.FilterValueField = (ddlFilterValueField.SelectedIndex > 0) ? ddlFilterValueField.SelectedValue : "";
            this.DefineNone       = chkDefineNone.Checked.ToString();

            if (chkFilterCriteria.Checked)
            {
                if (!string.IsNullOrEmpty((this.FilterValueField)))
                {
                    SPField parentField = field.ParentList.Fields.GetFieldByInternalName(this.FilterValueField);

                    if (parentField != null)
                    {
                        CascadingLookupField clParentField = parentField as CascadingLookupField;

                        string childFieldName = ((isNewField) ? ConvertToInternalName(field.Title) : field.InternalName) + "] ";

                        if (!clParentField.ChildrenField.Contains(childFieldName))
                        {
                            clParentField.ChildrenField += childFieldName;
                            clParentField.Update();
                        }
                    }
                }
            }

            CascadingLookupField clField = field as CascadingLookupField;

            if (isNewField)
            {
                clField.UpdateMyCustomProperty("Url", this.Url);
                clField.UpdateMyCustomProperty("List", this.List);
                clField.UpdateMyCustomProperty("Field", this.Field);
                clField.UpdateMyCustomProperty("ParentField", this.ParentField);
                clField.UpdateMyCustomProperty("ChildrenField", this.ChildrenField);
                clField.UpdateMyCustomProperty("FilterValueField", this.FilterValueField);
                clField.UpdateMyCustomProperty("DefineNone", this.DefineNone);
            }
            else
            {
                clField.Url              = this.Url;
                clField.List             = this.List;
                clField.Field            = this.Field;
                clField.ParentField      = this.ParentField;
                clField.ChildrenField    = CleanupChildrenField(field, this.ChildrenField);
                clField.FilterValueField = this.FilterValueField;
                clField.DefineNone       = this.DefineNone;
            }
        }
示例#2
0
        public void InitializeWithField(Microsoft.SharePoint.SPField field)
        {
            CascadingLookupField clField = field as CascadingLookupField;

            if (clField != null)
            {
                this.Url              = clField.Url;
                this.List             = clField.List;
                this.Field            = clField.Field;
                this.ParentField      = clField.ParentField;
                this.ChildrenField    = clField.ChildrenField;
                this.FilterValueField = clField.FilterValueField;
                this.DefineNone       = clField.DefineNone;

                EnsureChildControls();

                // Remove the current field from the FilterValueField list
                ListItem item = ddlFilterValueField.Items.FindByValue(field.InternalName);
                if (item != null)
                {
                    ddlFilterValueField.Items.Remove(item);
                }
            }
        }