Thursday, 16 February 2017

How to use HyperLink in ASP.NET GridView and dynamically bind its URL?


ASPX Design:

<asp:GridView ID="gridWithLinks" runat="server"
                                 AutoGenerateColumns="false"
                                 DataKeyNames="ID"

                                <Columns>

                                    <asp:TemplateField HeaderText="Link">
                                        <ItemTemplate>
                                            <asp:HyperLink

                                                ID="linkDetails"
                                                Target="_blank"
                                                Text="View details"
                                                runat="server">

                                            </asp:HyperLink>
                                        </ItemTemplate>
                                    </asp:TemplateField>

                               </Columns>
                            </asp:GridView>

Code Behind:

                gridWithLinks.DataSource = dataTableName;
                gridWithLinks.DataBind();

                foreach (GridViewRow row in gridWithLinks.Rows)
                {
                    ((HyperLink)row.FindControl("linkDetails")).NavigateUrl =
                        "https://URL?ID=" + gridWithLinks.DataKeys[row.RowIndex].Value.ToString() + "";

                }