A parte il fatto che non vedo nessuna riga sottolineata!
Direi che l'errore te lo da qui:
<a href="aggiungialcarrello.aspx?partID=<%# container.dataitem("partid")%>&cat=<%# container.dataitem("categoria")%>">
Mi viene da pensare che dentro la collection che passi al datalist1.datasource non ci sia un campo dell'oggetto che si chiama "categoria".
Se ottienicategoria(categoriaID) esegue una query verifica che tra le colonne che estrae ci sia "categoria".
PS:
Se mi permetti un consiglio, se ne hai la possibilità ti suggerisco di separare il codice HTML da quello lato server.
Ciao
Stefano