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?
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
There’s a trick to this. The Hyperlinkcolumn won’t work, because you can’t format the link. You want to use a boundfield and format the text. Like so
<asp:GridView ID="GridView1" runat="server" EnableModelValidation="True">
<Columns>
<asp:BoundField DataField="Code" HtmlEncode="False" DataFormatString="<a target='_blank' href='Test.aspx?code={0}'>Link Text Goes here</a>" />
</Columns>
</asp:GridView>
Alternately, you can use a templatefield if you need to designate edit and insert templates.
Method 2
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>
Method 3
to me it would be something like
<asp:DataGrid id="MyDataGrid"
GridLines="Both"
AutoGenerateColumns="false"
runat="server">
<HeaderStyle BackColor="#aaaadd"/>
<Columns>
<asp:HyperLinkColumn
HeaderText="Select an Item"
DataNavigateUrlField="code"
DataNavigateUrlFormatString="http://localhost/Test.aspx?code={0}"
Target="_blank"/>
</Columns>
</asp:DataGrid>
Method 4
You should be able to use a HyperLinkColumn in your markup.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0