Help request: Can repeater cells hold text that includes links?

Hi all, I’m hoping someone may have experience or knowledge of this area and who might be willing to offer their thoughts.

I’m continuing my ‘repeater education’ (it’s ongoing, as you might guess) and enjoying those air-punch moments when something that was proving tricky fiiiiiiiinally works.

I’m now attempting something that I thought would be pretty straightforward, but it’s proving obstinate. I’m building a prototype for a dynamic task-list for an intranet, and using a repeater to hold the data rows, some of which are then shown depending on the user’s interactions. Here’s a cut-down version of the output I’m aiming for with some dummy data:
z-out

This obviously lends itself nicely to a simple repeater structure like:
z-rep

My challenge, though, is how can I include hyperlinks associated with some of the text in the repeater, such as “Prepared Content Snapshots” in the example above? Is there a way to use pseudo-html in the text (as Balsamiq Mockups or BBcode allows) or some other method so that Axure will correctly format the link-text (e.g. blue and underlined) and associate a hyperlink destination with that link-text?

Ideally the hyperlink destination would be included in the same repeater cell somehow, e.g. this would be brilliant if it worked…
Read the <a href="http://intranet/page.html">Prepared Content Snapshots</a> document.
… but it doesn’t.

Does anyone know if there is a trick to this, or is this not possible? (I’m using Axure RP 8.1, by the way.)

Thank you for reading!

CJB

Very interesting… a good challenge.

The short answer is, “no”.

The long answer is, “well, maybe …kind of”.

There is not a way to assign a string, part of a string, or text in a repeater column to a “text link”. There is not a way to dynamically change text on a text link, even though you can create one within a text string on a widget and name it. There is not a way to specify HTML code or pseudo-code and have it implemented by a browser. There might be a way to hack this with javascript injection, but I sure don’t know how.

Here is a start…

Repeater with dynamic text links.rp (98.5 KB)

  • I created a repeater like you show above.
  • In the “Task” column I replaced your hyperlink text with “~1” to indicate where to place the text link.
  • I added columns for “LinkText” and “LinkURL”.
  • In the “LinkText” column I put the text for your hyperlinks.
  • In the “LinkURL” column I right-clicked the first row to specify a “Reference Page…”. In the second row I pasted the URL for “http://axure.com” and in the third row I entered, “mailto:retail.legal@acme.corp” --just to show you some options for links.
  • In the OnItemLoad event I have one action to set the text using Rich Text so the text from “Rec_Req” is bold and the text from “LinkText” is underlined blue, and there is a line break before the “Time” text. You can inspect it to see how the substring() function is used to parse the text in the “Task” column.
  • The “textArea” widget is styled with the “Fit to Height” option so that it sizes itself vertically based on the amount of text. This “textArea” widget has an OnClick action to ‘Open [[Item.LinkURL]] in Current Window’.
  • I modified (improved?) this repeater structure on the Home (1) page, so the entire text of the “Task” column is kept unbroken. The hyperlink text is wrapped with “~<” and “>~” as delimiters for the start and end of the link.

This all works, but the drawback is the entire row is clickable, not just the hyperlink text. It also only supports one hyperlink per row. Perhaps this is close enough for your purposes? If not, it might be possible to calculate the pixel length of the text prior to the hyperlink, …and the line height, …and which line the hyperlink would appear, and then move a hotspot to that location, …then resize the hotspot width to match the hyperlink text. I recall a year or so ago we figured out how to calculate the pixel length of text with javascript. If needed, maybe I could dig that up and try that approach.

1 Like

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.