我试图显示SQL DB中列名称Nature的值的超链接。 我可以静态显示“自然”特定值的链接。
但是对于某些值,我应该能够仅显示值而无需任何超级链接。
如果自然的价值是
页面上的输出应为:
自然链接(页面上的列名称)
我无法仅显示文本值(对于PQR),并且始终显示为链接。
尝试
在Gridview中使用HyperlinkField:
<asp:TemplateField HeaderText="Nature"><ItemTemplate><asp:HyperLink Target="_blank" ID="nature" NavigateUrl='<%# stauslink_RowDataBound(Eval("nature") as string) %>' Text='<%# Eval("nature") %>' runat="server" /></ItemTemplate></asp:TemplateField>
代码:
Protected string stauslink_RowDataBound(string sts)
{
string stslink = "http://www.this.is.test";
switch (sts)
{
case "A":
case "B":
case "C":
stslink = "http://www.this.is.test1";
break;
default:
break;
}
return stslink;
}
答案 0 :(得分:0)
据我所知,您想针对两种不同的情况显示不同的控件。您可以这样编程:在一种情况下显示链接,在另一种情况下显示文本。
要完全隐藏其他各个选项,请使用这样的超链接和占位符控件(在aspx文件中)
<asp:HyperLink runat="server" Visible="<%# Item.MyCondition %>" Text="Click here!" NavigateUrl="<%#: Item.MyLinkUrl %>" />
<asp:PlaceHolder runat="server" Visible="<%# !Item.MyCondition %>">
<span class="xyz">
<asp:Literal runat="server" Text="You may not click here!"></asp:Literal>
</span>
</asp:PlaceHolder>
使用span
可以自定义文本样式。
答案 1 :(得分:0)
如下更新null as any
方法
stauslink_RowDataBound
在下面的protected string stauslink_RowDataBound(string sts)
{
if (sts == "A" || sts == "B" || sts == "C")
return "http://www.this.is.test1";
else if (sts == "X" || sts == "Y" || sts == "Z")
return "http://www.this.is.test2";
else
return string.Empty;
}
更新GridView
中,您将基于链接值拥有TemplateField
属性
Visible