我有自动生成的网格视图,它生成为:
gvOffer.DataSource = offer.View(ddlResult.SelectedValue);
gvOffer.DataBind();
我需要将第一列和第二列设置为超链接。换句话说,第1列和第2列下的行必须处于超链接状态。我该怎么办?我找到的大多数答案都要求我将auto-generated设置为false,我试图避免。
答案 0 :(得分:3)
您可以将DataFormatString设置为URL形式,如下所示:http://forums.asp.net/p/1127741/1780013.aspx
略微修改 - 您需要在执行DataBind()调用之前在代码隐藏中设置formatstring。 (代码未经测试,抱歉,我不在我的开发电脑上)
gvoffer.Columns[0].DataFormatString = "<a href=\"http://mywebsite/page.aspx?q={0}\">{0}</a>"
gvoffer.Columns[0].HtmlEncode = false;
确保将列的HtmlEncode属性设置为“false”,否则url将只是htmlencoded并且无用(尽管我在下面的链接中看到这仅适用于.NET 3.0及更早版本。)
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.boundfield.dataformatstring.aspx
答案 1 :(得分:1)
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string value = e.Row.Cells[0].Text;
e.Row.Cells[0].Text = Convert.ToString("<a href=\"Office.aspx?number=" + value + "\">" + value + "</a>");
}
}