Non disperare è possibile!!
Io mi sono rifatto per comodità la maggior parte dei controlli e tra questi anche un button che ritorna un confirm.
Questo funziona indipendentemente da dove lo metti(Quindi anche all'interno di un grid).
Da altri tuoi post ho visto che stai provando appunto i controlli personalizzati, quindi sai già cosa fare.

Public Class Del_Button

Inherits Button

Protected Overrides Sub AddAttributesToRender(writer As HtmlTextWriter)

MyBase.AddAttributesToRender(writer)

writer.AddAttribute("onclick", "return confirm('ATTENZIONE!! I dati saranno rimossi definitivamente');")

End Sub

End Class

Lo registri e poi in una colonna template lo richiami così:

<Tuo_prefixel_Button id= ecc... commandname="Delete" runat="Server" />

Occhio ai ritorni a capo.
Ciao
Legnetto