¿Probaste poner directamente el nombre del campo ID de tu tabla?
algo así
Código PHP:
<asp:TemplateField HeaderText="Imagen">
<ItemTemplate>
<a href='detalle.aspx?id=Eval("ID")'>
<img src="pathImagen" alt="Imagen" />
</a>
</ItemTemplate>
</asp:TemplateField>
la verdad que nunca utiliza SQLDataSource.
proba cambiar Eval("ID") por el nombre de tu campo ID.
saludos!