I'm trying to render a general link field like this - FieldRenderer.Render(item, "link")
.
This works as expected but how do I set custom text within the a tag that gets rendered. I want my output to look something like this
<a href="[link from sitecore]">[custom text from another field]</a>
Basically, the text for the link should come from another field on the item.
Thanks
You probably want to try the following:
Varun's answer is definitely correct, however you will encounter an issue when the content editor has put a value into the
Description
field of aGeneral Link
. The link renderer will output both the description and whatever is between theBeginField
andEndField
methods.A solution would be to allow for an extra parameter (
HideDescription
) which can hide the description. Two possible solutions for this would be;Sitecore.Xml.Xsl.LinkRenderer
class with your own that would stop the description from being put in.Sitecore.Pipelines.RenderField.GetLinkFieldValue
which will do some post rendered processing to remove the description.Option 2 is less invasive but is a little more difficult to make sure the results are 100%. Once you have this you can then render fields like the following;
already has been answered but this worked for me
Jason has a great idea, but this functionality is out of the box.
No need to modify anything at all.
You can also use begin and end-field and use the haschildren property, this will hide the text and just display any child-content between the begin and end statements: