E' anche per il datalist: quella colonna la devi mettere al posto di boundcolumn, così

<asp:TemplateColumn HeaderText="ID">
<ItemTemplate>
<asp:Label id="id" runat="server" text='<%#DataBinder.Eval(Container.DataItem, "a") %>'></asp:Label>
</ItemTemplate>
<EditItemTemplate>
<asp:Label runat="server" width="20" id="idautore" text='<%# cstr(DataBinder.Eval(Container.DataItem, "a")) %>' />
</EditItemTemplate>
</asp:TemplateColumn>

Cioè sostituisci alla bound column una template column al cui interno fissi la grafica dell'itemtemplate. Ciao