You can achieve this by having DataNavigateUrlFormatString in GridView. Please check the sample provide below.
Singe Data:
<asp:GridView BorderWidth="0" BorderColor="#164aa0" BorderStyle="Solid" Width="100%"
ID="grdFAQ" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:HyperLinkField
HeaderText="Title" DataTextField="Title" DataNavigateUrlFields="Id" DataNavigateUrlFormatString="~/FAQDetails.aspx?ID={0}" />
</Columns>
<EmptyDataTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" style="height: 30px">
No Data's Avaiable.
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>
Multiple Data:
<asp:GridView BorderWidth="0" BorderColor="#164aa0" BorderStyle="Solid" Width="100%"
ID="GridView1" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:HyperLinkField
HeaderText="Title" DataTextField="Title" DataNavigateUrlFields="Id,Name" DataNavigateUrlFormatString="~/FAQDetails.aspx?ID={0}&Name={1}" />
</Columns>
<EmptyDataTemplate>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
<tr>
<td align="center" style="height: 30px">
No Data's Avaiable.
</td>
</tr>
</table>
</EmptyDataTemplate>
</asp:GridView>