Index: /trunk/grails-app/taglib/CustomTagLib.groovy
===================================================================
--- /trunk/grails-app/taglib/CustomTagLib.groovy	(revision 302)
+++ /trunk/grails-app/taglib/CustomTagLib.groovy	(revision 303)
@@ -26,7 +26,30 @@
      *           this.assetSubItems = idList.collect { AssetSubItem.get( it ) }
      *       }
+     *
      * Then a line in the controller:
      *      assetInstance.setAssetSubItemsFromCheckBoxList(params.assetSubItems)
+     *
+     * Fields:
+     *    name - the property name.
+     *    from - the list to select from.
+     *    value - the current value.
+     *    optionKey - the key to use.
+     *    displayFields - (optional) available options are 'id' and 'name', defaults to the objects toString().
+     *    linkController - (optional, requires linkAction.) the controller to use for a link to the objects in the checkBoxList.
+     *    linkAction - (optional, requires linkController.) the action to use for a link to the objects in the checkBoxList.
+     *
+     * Example:
+     *    <!--
+     *    <custom:checkBoxList name="assetSubItems"
+     *                                    from="${AssetSubItem.list()}"
+     *                                    value="${assetInstance?.assetSubItems.collect{it.id}}"
+     *                                    optionKey="id"
+     *                                    displayFields="['id', 'name']"
+     *                                    linkController="assetSubItemDetailed"
+     *                                    linkAction="show"/>
+     *    -->
+     *
      */
+
     def checkBoxList = {attrs, body ->
 
@@ -37,4 +60,6 @@
 
         def displayFields = attrs.displayFields
+        def linkController = attrs.linkController
+        def linkAction = attrs.linkAction
 
         def displayValue = " "
@@ -60,7 +85,9 @@
             displayValue = " "
 
-            if( displayFields?.contains("id") ) {
+            if( displayFields?.contains("id") )
                 displayValue += obj.id + " - "
-            }
+
+            if(linkController && linkAction)
+                   displayValue += "<a href=\"${createLink(controller: linkController, action: linkAction, id: obj.id).encodeAsHTML()}\">"
 
             if(displayFields?.contains("name")) {
@@ -68,4 +95,7 @@
             }
             else displayValue += obj
+
+            if(linkController && linkAction)
+                displayValue += '</a>'
 
             // if we wanted to select the checkbox using a click anywhere on the label (also hover effect)
Index: /trunk/grails-app/views/assetDetailed/edit.gsp
===================================================================
--- /trunk/grails-app/views/assetDetailed/edit.gsp	(revision 302)
+++ /trunk/grails-app/views/assetDetailed/edit.gsp	(revision 303)
@@ -89,5 +89,7 @@
                                                                     value="${assetInstance?.assetSubItems.collect{it.id}}"
                                                                     optionKey="id"
-                                                                    displayFields="['id', 'name']"/>
+                                                                    displayFields="['id', 'name']"
+                                                                    linkController="assetSubItemDetailed"
+                                                                    linkAction="show"/>
 
                                 </td>
