Thanks, Jeremy, I think having a real link outweighs having the whole row being a pseudo link, so I'm going to just have the ID column value be a link. But thanks for the advice; it's still informative.
On Wed, Jun 16, 2010 at 2:20 AM, Jeremy Thomerson <[email protected] > wrote: > On Wed, Jun 16, 2010 at 1:17 AM, Ray Weidner < > [email protected]> wrote: > > > Hi all, > > > > Forgive my ignorance if this is too obvious. I'm using DefaultDataTable > to > > display search results, and that's working fine. What I'd like to do is > > make each row of the table a hyperlink to the view/edit page of the > record > > in question. How can I do this? > > > > I was able to add links to a column, although they don't show up in the > > browser as actual links. Rather, they appear as text with associate > > javascript to process an onclick event. Here's the custom column I > created > > for this purpose: > > > > private class IncidentLinkPropertyColumn extends PropertyColumn > > <IncidentReport> { > > > > public IncidentLinkPropertyColumn (IModel <String> nameModel, String > > propertyName) { > > super (nameModel, propertyName); > > } > > @Override > > public void populateItem (Item <ICellPopulator <IncidentReport>> item, > > String componentId, > > IModel <IncidentReport> model) { > > PageParameters params = new PageParameters (); > > params.put ("incidentId", model.getObject ().getRecordId ()); > > item.add (new LabelLink (componentId, CreateOrEditIncidentPage.class, > > params)); > > } > > > > private class LabelLink extends BookmarkablePageLink <Object> { > > private static final long serialVersionUID = 3429331456890689136L; > > > > public LabelLink (String componentId, Class <? extends Page> pageType, > > PageParameters parameters) { > > super (componentId, pageType, parameters); > > } > > @Override > > protected void onComponentTagBody (MarkupStream markupStream, > ComponentTag > > openTag) { > > replaceComponentTagBody (markupStream, openTag, "click here!"); > > } > > } > > } > > > > As I said, I'd like the rows to be links to the IncidentReport, but > barring > > that, it would be nice if the link column actually appeared as links, so > > users can right-click to open in a separate tab. If necessary, I can > draft > > an informational column (like ID) to serve as a link, as long as it is a > > true link (so it will be visually obvious, as well as retaining > right-click > > functionality). > > > > Any ideas? Thanks in advance. > > > > to make the rows into links, override newItem (or whatever the name is - it > starts with new) that creates a new row. then you could add an onclick to > the row item, or even an ajaxeventbehavior("onclick") to do some ajax > behavior.... > > to make the column into a real link, you'll need to use a fragment since > the > default html for a cell is just a span. > > -- > Jeremy Thomerson > http://www.wickettraining.com >
