Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ASP.NET + GridView + CommandField as TemplateField

I have a GridView. My GridView has a column that is contains an "Options" column. This column includes the traditional CommandField options (edit, delete, etc.). I have the code setup to work when a CommandField is used. However, I need to do some custom formatting so I needed to convert the CommandField to a TemplateField.

My question is, how do I trigger the OnRowCommand, OnRowEditing, OnRowDeleting, and OnRowUpdating events from the various LinkButton elements in my TemplateField?

Thank you!

like image 589
user70192 Avatar asked Oct 30 '09 00:10

user70192


1 Answers

All you have to do is set the CommandName property of the LinkButton inside of your template column to 'Edit' for editing, 'Delete' for deleting and 'Update' for updating. This will trigger the GridView RowEditing, RowDeleting and RowUpdating events respectively. To trigger the RowCommand event you need to set the OnRowCommand property of your GridView control.

<asp:GridView ID="GridView1" runat="server" OnRowCommand="GridView1_RowCommand"
    OnRowDeleting="GridView1_RowDeleting" OnRowEditing="GridView1_RowEditing"
    OnRowUpdating="GridView1_RowUpdating">
<Columns>
    <asp:TemplateField>
        <ItemTemplate>
            <!--To fire the OnRowEditing event.-->
            <asp:LinkButton ID="lbEdit" runat="server" CommandName="Edit" 
                Text="Edit">
            </asp:LinkButton>
            <!--To fire the OnRowDeleting event.-->
            <asp:LinkButton ID="lbDelete" runat="server" CommandName="Delete" 
                Text="Delete">
            </asp:LinkButton>
            <!--To fire the OnRowUpdating event.-->
            <asp:LinkButton ID="lbUpdate" runat="server" CommandName="Update" 
                Text="Update">
            </asp:LinkButton>
        </ItemTemplate>
    </asp:TemplateField>
</Columns>    
</asp:GridView>
like image 69
Phaedrus Avatar answered Sep 17 '22 15:09

Phaedrus