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; } }
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); } } }