public override void HandleMessage(Message message) { base.HandleMessage(message); if (message["id"] != ID) { return; } switch (message.Name) { case "linkfield:search": Sitecore.Context.ClientPage.Start(this, nameof(Search)); return; case "linkfield:delete": UpdateValue(string.Empty); return; case "linkfield:open": if (Sitecore.Data.ID.TryParse(Value, out ID result)) { ContentEditorUtils.OpenItemInTab(result, ItemLanguage); } return; } }
public override void HandleMessage(Message message) { base.HandleMessage(message); if (message["id"] != ID) { return; } switch (message.Name) { case "linkfield:search": Sitecore.Context.ClientPage.Start(this, nameof(Search)); return; case "linkfield:delete": string itemid = message[SingleLinkSearchField.ItemIdParameter]; string[] values = Value.Split('|'); string newValue = string.Join("|", values.Where(x => x != itemid)); UpdateValue(newValue); return; case "linkfield:open": if (Sitecore.Data.ID.TryParse(message[SingleLinkSearchField.ItemIdParameter], out ID result)) { ContentEditorUtils.OpenItemInTab(result, ItemLanguage); } return; } }
private void Search(ClientPipelineArgs args) { if (args.IsPostBack) { if (args.HasResult && Value.Equals(args.Result) == false) { string newValue = args.Result; UpdateValue(newValue); } } else { NameValueCollection parameters = SourceStringUtils.GetSourceString(ItemID, ItemLanguage, Source); ContentEditorUtils.ShowSearchDialog(parameters); args.WaitForPostBack(); } }