how to create a link in gridview in asp.net

Arif YILMAZ picture Arif YILMAZ · Nov 5, 2013 · Viewed 52.6k times · Source

I am trying to create a webpage that has a gridview. this gridview is supposed to have a link like below

http://localhost/Test.aspx?code=123

when the user clicks one of the rows' link in gridview, it will open a blank page and display some result.

here is how I bind data to the gridview but I dont know how to set the link

protected void Page_Load(object sender, EventArgs e)
{
    string firma_no = logoFrmNr.ToString().PadLeft(3, '0');
    string active_period = logoFrmPeriod.PadLeft(2, '0');

    SqlConnection conn = new SqlConnection(conStr);
    string selectSql = @"SELECT 
                                LOGICALREF,
                                CODE , 
                                DEFINITION_ ,
                                FROM 
                                LG_CLFLINE";

    SqlCommand cmd = new SqlCommand(selectSql, conn);
    DataTable dt = new DataTable();
    SqlDataAdapter da = new SqlDataAdapter(cmd);
    da.Fill(dt);
    GridView1.DataSource = dt;
    GridView1.DataBind();

    conn.Close();
}

here is the markup

<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
</asp:GridView>

How can I make a link out of CODE column?

Answer

Karl Anderson picture Karl Anderson · Nov 5, 2013

Add this to your Columns definition in the markup for your grid view:

<asp:TemplateField HeaderText="Hyperlink">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" 
            NavigateUrl='<%# Eval("CODE", @"http://localhost/Test.aspx?code={0}") %>' 
            Text='link to code'>
        </asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>