That depends on what you want to do...if you want to process a GridView command use the OnRowCommand event instead...
<asp:GridView ID="grid" runat="server" OnRowCommand="grid_RowCommand">
<Columns>
<TemplateField>
<ItemTemplate>
<asp:Button ID="btnFunction1" runat="server CommandName="Delete"/>
</ItemTemplate>
</TemplateField>
</Columns>
</asp:GridView>
Then on code-behind....
protected void grid_RowCommand(Object sender, GridViewCommandEventArgs e)
{
}
But if you want to simply handle the button's click event then, register the event declaratively using the Click event...
<TemplateField>
<ItemTemplate>
<asp:Button ID="btnFunction1" runat="server OnClick="Function1"/>
</ItemTemplate>
</TemplateField>
and adjust your event handler method to match the same method signature of the Click event...
protected void Function1(object sender, EventArgs args)
{
}