That worked! Thank you.
So, what is the DNN8 way to handle this now?
<dnn:DnnGrid ID="immProductGrid" runat="server" AutoGenerateColumns="True"
ShowStatusBar="True" AllowSorting="True" CommandItemDisplay="Top"
HierarchyLoadMode="Conditional" OnItemCreated="immProductGrid_ItemCreated"
EnableViewState = "True" OnNeedDataSource="immProductGrid_NeedDataSource"
OnDetailTableDataBind="immProductGrid_DetailTableDataBind">
<PagerStyle Mode="NumericPages"></PagerStyle>
<MasterTableView runat="server" DataKeyNames="StoreOrderID" AllowMultiColumnSorting="True"
OnPreRender="immProductGrid_PreRender">
<DetailTables>
<dnn:DnnGridTableView runat="server" DataKeyNames="StoreOrderID, ProductId" Name="immProducts"
OnPreRender="ProductLvl0_PreRender"
AutoGenerateColumns="True" Width="100%">
<DetailTables>
<dnn:DnnGridTableView runat="server" DataKeyNames="ProductId" Name="immProducts1"
OnPreRender="ProductLvl1_PreRender"
AutoGenerateColumns="True" Width="100%">
<Columns>
<dnn:DnnGridTemplateColumn UniqueName="CheckBoxTemplateColumn1">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" OnCheckedChanged="ToggleRowSelection"
AutoPostBack="True" />
</ItemTemplate>
</dnn:DnnGridTemplateColumn>
</Columns>
</dnn:DnnGridTableView>
</DetailTables>
<Columns>
<dnn:DnnGridTemplateColumn UniqueName="CheckBoxTemplateColumn0">
<ItemTemplate>
<asp:CheckBox ID="CheckBox0" runat="server" OnCheckedChanged="ToggleRowSelection"
AutoPostBack="True" />
</ItemTemplate>
</dnn:DnnGridTemplateColumn>
<dnn:DnnGridImageColumn DataType="System.String" DataImageUrlFields="Image"
DataImageUrlFormatString="/Portals/<%#PortalID%>/SmithCart/Thumbnails/{0}" AlternateText="CD image" DataAlternateTextField="ContactName"
ImageAlign="Middle" HeaderText="Image Column" />
</Columns>
</dnn:DnnGridTableView>
</DetailTables>
<Columns>
</Columns>
</MasterTableView>
</dnn:DnnGrid>
Thanks,
Chris