我正在从列名称Nature中获取来自SQL DB的数据,应根据Nature的值确定超链接。
如果自然的价值是
页面上的输出应为:
自然链接(页面上的列名称)
如果值是A -----> A(当点击“ A”链接http://www.this.is.test1时应打开)
如果值为Q -----> Q(单击“ Q”链接http://www.this.is.test3时应打开)
我无法显示该值(A,B,C,P,Q ...)和相关链接。
尝试
1。 在Gridview中使用HyperlinkField
<asp:HyperlinkField HeaderText="Nature Link" DataTextField="Nature"
Visible="true" SortExpression="Nature"
DataNavigateUrlFormatString="http://www.this.is.{0}"
DataNavigateUrlFields="Nature" target="_blank"></asp:HyperlinkField>
代码:
protected void dginvoicereport_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType != DataControlRowType.Header)
{
var t_nature= Int32.Parse(e.Row.Cells[25].Text.Replace(" ",""));
if ((t_nature== 'A') || (t_nature== 'B') || (t_nature== 'C'))
e.Row.Cells[25].Text = "test1";
else if ((t_nature== 'X') || (t_nature== 'Y') || (t_nature== 'Z'))
e.Row.Cells[25].Text = "test2";
}
}
2。 这个:
<asp:BoundField DataField="nature" HeaderText="Nature Link"
HtmlEncode="False" DataFormatString="<a target='_blank'
href='http://www.this.is.{0}'>Link</a>" /> `
答案 0 :(得分:0)
在后面的代码中创建方法以检查Nature的值并返回所需的链接,如下所示:
protected string GeNatureLink(string nature)
{
string naturetLink = "http://www.this.is.test1";
switch (nature)
{
case "A": case "B": case "C":
break;
case "X": case "Y": case "Z":
naturetLink = "http://www.this.is.test2";
break;
case "P": case "Q": case "R":
naturetLink = "http://www.this.is.test3";
break;
default:
break;
}
return naturetLink;
}
在GridView
中的TemplateField
下添加
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink Target="_blank" ID="hyperlink" NavigateUrl='<%# GeNatureLink(Eval("Title") as string) %>' Text='<%# Eval("Title") %>' runat="server" />
</ItemTemplate>
</asp:TemplateField>