Checkboxes, Radios, 'select or other' wont render inside table select element I want to render elements of type checkboxes or radios inside tableselect, but what I get are empty html tags. Textfield and select type elements render fine.

Basically this renders fine.

$tableSelectTesting = array(
  '#type' =&gt; 'select',
  '#options' =&gt; array(
    "1000" =&gt; "$1000",
    "other" =&gt; t("Other"),
  ),
);


This does not.

$tableSelectTesting = array(
  '#type' =&gt; 'radios',
  '#options' =&gt; array(
      "1000" =&gt; "$1000",
      "other" =&gt; t("Other"),
    ),
);


I add the form element to table select using the 'data' array key.

$options[$index] = array(
    'column1' =&gt; $column1Data,
    'column2' =&gt; array(
      'data' =&gt; $tableSelectTesting,
    )
  );


This is the output I get for the radios element.

&lt;td&gt;&lt;div id="some-id" class="form-radios"&gt;&lt;/div&gt;&lt;/td&gt;


What should I be doing differently?
I believe you are missing some details in the way you structure your data. Check this example, specifically the data array tree.  

Also, check the structure of the array that defines the tableselect. For radios it should look like this:

$form['table'] = array(
  '#type' =&gt; 'tableselect',
  '#header' =&gt; $header,
  '#options' =&gt; $options,
  '#multiple' =&gt; FALSE,
);


(the #multiple property is the one that defines whether these are checkboxes or radios)

Your data in the array $options should look something like this:

$options = array(
  '1000' =&gt; array(
      'field_price' =&gt; '$1000',
  ),
  'other' =&gt; array(
      'field_price' =&gt; 'Other',
  ),
);


Notice the nested structure, and the field name (this could be anything, but it needs to exist, one for every column of the table, starting with the second column.