     select: ->
         @defaultSelect
 
+    valueFromRecord: (key, col, record) ->
+        if col.dataKey
+            subElements = col.dataKey.split('.')
+            value = record
+            for subElement in subElements
+                value = value?[subElement]
+            value
+        else
+            record[key]
+
     data: ->
         records = @collection()?.find(@select(),
             sort: @sort()

                            col.checked = 'checked'
                    else if col.default
                        col.checked = 'checked'
                else if record?[dataKey]?
                    col.value = col.display?(record[dataKey], record) or record[dataKey]
                else if col.default?
                    col.value = col.default
                

                deleteOk: @collection().deleteOk?(record)

        recordDisplayStop = @skip() + recordData.length
        
        theData =
            haveData: records? and (records.length > 0 or @_sess("recordCount") > 0)
            tableTitle: @_tableTitle()
