Using ASP.NET Web Forms, Passing Primary Key to RowCommand Event


I know this is old hat, but after recently having a conversation with one of the ASP.NET Team guys about how easy Web Forms is to use, I thought I’d just post a simple example of that.  Here is the scenario.  You have a simple GridView with just three columns (Select,Id,TagName).  You want to be able to capture what happens when the user pressed the Select command and capture the Id.  It looks like this:




And has an aspx page like this:


<asp:GridView ID="GridViewNotSelected" runat="server" AllowSorting="True" 
<asp:TemplateField ShowHeader="False">
<asp:LinkButton ID="LinkButton1" runat="server"
CausesValidation="False" CommandArgument='<%# Eval("Id") %>'
CommandName="Select" Text="Select"></asp:LinkButton>
<asp:Label ID="Label1" Text='<%# Eval("TagName") %>' runat="server"></asp:Label>

Notice that in the TemplateField there is LinkButton with a CommandArgument that simply extracts the TagName with the current Id of the SqlDataSource.  Now, all you need is the RowCommand event and you are done.  Here it is in C#.


protected void GridViewNotSelected_RowCommand(object sender, GridViewCommandEventArgs e)
int tagsId = Convert.ToInt32(e.CommandArgument);

And finally, the proof!




Very very simple.  HTH’s.

About Peter Kellner

Peter is a software professional specializing in mobile and web technologies. He has also been a Microsoft MVP since 2007. In addition, he's a multi-course video author at Pluralsight. To read more about Peter Kellner and his experience click here. For information about how Peter Kellner might be able to help you with your project click here.

Follow me:


Get every new post delivered to your Inbox

Join other followers: