 <p>You can use the <code>RowCommand</code> instead, like..</p> <pre><code> protected void cgvProjectPropertyList_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Delete") { e.CommandArgument // will Return current Row primary key value, rather row Index } } </code></pre> <p>and you need to make sure to register the event in the GridView <code>OnRowCommand="cgvProjectPropertyList_RowCommand"</code></p>