General Link Field /
General Link Search Field
Sitecore.Data.Fields.LinkField
class is used to access the data template fields of type general link.
Access a link type field
Sitecore.Data.Fields.LinkField
lnkField = current.Fields ["General Link Field"];
if (lnkField! = null)
{
if (lnkField.LinkType == "external" || lnkField.LinkType ==
"anchor" || lnkField.LinkType == "mailto" ||
lnkField.LinkType == "javascript")
{
HyperLink1.Text =
lnkField.Text;
HyperLink1.NavigateUrl =
lnkField.Url;
}
if (lnkField.LinkType ==
"internal")
{
HyperLink1.Text =
lnkField.Text;
HyperLink1.NavigateUrl =
Sitecore.Links.LinkManager.GetItemUrl
(lnkField.TargetItem);
}
else if (lnkField.LinkType ==
"media")
{
Image1.ImageUrl =
Sitecore.StringUtil.EnsurePrefix
('/', Sitecore.Resources.Media.MediaManager.GetMediaUrl (lnkField.TargetItem));
}
}
Edit Link Field –
External
using (new
Sitecore.SecurityModel.SecurityDisabler ())
{
Database master =
Sitecore.Configuration.Factory.GetDatabase ("master");
Sitecore.Data.Items.Item current =
master.GetItem (Sitecore.Context.Item.ID);
current.Editing.BeginEdit ();
Sitecore.Data.Fields.LinkField
lnkField = current.Fields["General Link Field"];
if (lnkField != null)
{
lnkField.LinkType =
"external";
lnkField.Url =
"http://sitecore.com";
}
current.Editing.EndEdit ();
}
Edit Link Field – Internal
using (new
Sitecore.SecurityModel.SecurityDisabler ())
{
Database master =
Sitecore.Configuration.Factory.GetDatabase ("master");
Sitecore.Data.Items.Item current =
master.GetItem (Sitecore.Context.Item.ID);
Sitecore.Data.Items.Item editItem =
master.GetItem ("/sitecore/content/Home/Page1");
current.Editing.BeginEdit ();
Sitecore.Data.Fields.LinkField lnkField = current.Fields ["General
Link Field"];
if (lnkField!= null)
{
lnkField.Clear ();
lnkField.LinkType =
"internal";
Sitecore.Links.UrlOptions
urlOptions = Sitecore.Links.LinkManager.GetDefaultUrlOptions ();
urlOptions.AlwaysIncludeServerUrl = false;
lnkField.Url =
Sitecore.Links.LinkManager.GetItemUrl (editItem, urlOptions);
lnkField.TargetID =
editItem.ID;
}
current.Editing.EndEdit ();
}
Edit Link Field – Media
using (new
Sitecore.SecurityModel.SecurityDisabler ())
{
Database master =
Sitecore.Configuration.Factory.GetDatabase ("master");
Sitecore.Data.Items.Item current =
master.GetItem (Sitecore.Context.Item.ID);
Sitecore.Data.Items.Item editItem =
master.GetItem ("/sitecore/media library/Images/Translate");
current.Editing.BeginEdit ();
Sitecore.Data.Fields.LinkField
lnkField = current.Fields ["General Link Field"];
if (lnkField != null)
{
lnkField.Clear ();
lnkField.LinkType =
"media";
lnkField.Url =
editItem.Paths.MediaPath;
lnkField.TargetID =
editItem.ID;
}
current.Editing.EndEdit ();
}
Thanks for posting
ReplyDelete