将VB代码后面的变量传递给aspx前端页面

时间:2014-05-05 15:29:01

标签: asp.net .net vb.net

我试图在代码隐藏文件上隐藏基于变量值(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错误。

2 个答案:

答案 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