我试图在代码隐藏文件上隐藏基于变量值(groupId)的链接。 以下是基于我在堆栈上面找到的各种搜索结果以及其他地方的尝试。
方法1:
<asp:HyperLink ID="test_id" runat="server"
NavigateUrl='<%#String.Format("report.aspx")%>'
Text='Report' ToolTip="Generate Report"
ForeColor="#333399" Font-Names="Tahoma" Target = "_blank"
>
</asp:HyperLink>
代码背后:
Dim groupId As String = ds.Tables(0).Rows(0).Item("GROUP_ID")
'bmt_id.
If (groupId = 0) Then
test_id.Visible=True;
End If
错误:未声明'test_id'。由于其保护级别,它可能无法访问。
方法2:
aspx页面:
<%If {<%=groupId%>} = 0 Then%>
<asp:HyperLink ID="test_id" runat="server"
NavigateUrl='<%#String.Format("report.aspx")%>'
Text='Report' ToolTip="Generate Report"
ForeColor="#333399" Font-Names="Tahoma" Target = "_blank"
>
</asp:HyperLink>
<%End If%>
错误:在运行时期间找不到groupId错误。
答案 0 :(得分:2)
你的两次尝试都很接近,但有一些缺陷。
方法1:您的超链接使用了错误的名称。你把它命名为ID =“test_id”。不是“Hyperlink2”。
<asp:HyperLink ID="test_id" runat="server"
NavigateUrl='<%#String.Format("report.aspx")%>'
Text='Report' ToolTip="Generate Report"
ForeColor="#333399" Font-Names="Tahoma" Target = "_blank"
>
</asp:HyperLink>
代码背后:
Dim groupId As String = ds.Tables(0).Rows(0).Item("GROUP_ID")
If (groupId = 0) Then
test_id.Visible=True
End If
方法2:您使用GroupId作为变量(私有)而不是公共属性。
aspx页面:
<%If groupId = 0 Then%>
<asp:HyperLink ID="test_id" runat="server"
NavigateUrl='<%#String.Format("report.aspx")%>'
Text='Report' ToolTip="Generate Report"
ForeColor="#333399" Font-Names="Tahoma" Target = "_blank"
>
</asp:HyperLink>
<%End If%>
代码背后:
Public Readonly Property groupId As String
Get
return ds.Tables(0).Rows(0).Item("GROUP_ID")
End Get
End Property
答案 1 :(得分:1)
在代码隐藏中,您需要引用ID,即“test_id”,而不是“Hyperlink2”。
If (groupId = 0) Then
test_id.Visible=True
End If