No entendí bien eso de "a golpe de código", a ver si esto te sirve:
<asp:datagrid id="dgCatalog" runat="server" Width="95%" BorderWidth="1px" BorderColor="Black"
AutoGenerateColumns="False" cellpadding="0" Font-Size="8pt" Font-Names="Verdana"
AllowPaging="False" PageSize="100" OnItemDataBound="dgCatalog_ItemDataBound">
<HeaderStyle BackColor="#17468B" ForeColor="#FFFFFF" Font-Bold="False" Font-Italic="False" Font-Overline="False" Font-Strikeout="False" Font-Underline="False" />
<SelectedItemStyle ForeColor="#FFFFFF" BackColor="#0053E1" />
<ItemStyle ForeColor="#000000" BackColor="#FFFFFF" />
<AlternatingItemStyle ForeColor="#000066" BackColor="#ECF1FA" />
<FooterStyle ForeColor="#000066" BackColor="White" />
<Columns>
<asp:BoundColumn DataField="Id_Funcion" ReadOnly="True" HeaderText="Clave" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="Descripcion" HeaderText="Descripción">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle Width="90%"></ItemStyle>
</asp:BoundColumn>
<asp:BoundColumn DataField="PadreId" ReadOnly="True" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="Ruta" ReadOnly="True" Visible="False"></asp:BoundColumn>
<asp:BoundColumn DataField="Permiso" ReadOnly="True" Visible="False"></asp:BoundColumn>
<asp:TemplateColumn HeaderText="Acceso">
<HeaderStyle HorizontalAlign="Center"></HeaderStyle>
<ItemStyle HorizontalAlign="Center" Width="10%"></ItemStyle>
<ItemTemplate>
<asp:CheckBox id="chkAccess" Runat="server" Visible="True"></asp:CheckBox>
<asp:TextBox ID="txtMother" Runat="server" CssClass="hiddenControl"></asp:TextBox>
<asp:TextBox ID="txtIsMenu" Runat="server" CssClass="hiddenControl"></asp:TextBox>
<asp:TextBox ID="txtIam" Runat="server" CssClass="hiddenControl"></asp:TextBox>
</ItemTemplate>
</asp:TemplateColumn>
</Columns>
</asp:datagrid>
Y del lado del cliente se leé o se establece así:
CheckBox oCheckBox = (CheckBox)e.Item.Cells[5].FindControl("chkAccess");
if (e.Item.Cells[4].Text.Equals("-1"))
{
oCheckBox.Checked = false;
}
else
{
oCheckBox.Checked = true;
}
Espero que lo anterior sea lo que buscabas.
Saludos