Ti consiglio di mantenere gli ItemTemplate solo in lettura, ed aggiungere un EditItemtemplate per modificare la categoria come vuoi tu:
<Columns>
<asp:CommandField ShowEditButton="True" />
<asp:BoundField DataField="idProdotto " InsertVisible="False" ReadOnly="True" />
<asp:BoundField DataField="nomeProdotto " />
<asp:TemplateField HeaderText="CATEGORIA" SortExpression="idCat" >
<ItemTemplate>
una label o cosa preferisci
</ItemTemplate>
<EditItemTemplate>
<asp:DropDownList ID="idCat1" runat="server"
DataSourceID="AccessDataSource2"
DataTextField="nome" DataValueField="idCat"
SelectedValue='<%# Bind("IdCategoria") %>'>
</asp:DropDownList>
</EditItemTemplate>
</asp:TemplateField>
</Columns>
Però ricorda che devi configurare il primo DataSource in modo da avera anche un UpdateCommand con i giusti parametri.
____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.