如何对用户控件文件执行代码隐藏



>我有一个动态菜单,根据数据库中的标志显示选择的项目。目前,我的.aspx页面上有菜单,.aspx.vb页面上有后面的代码。我正在添加更多页面,因此我尝试使用用户控件分隔菜单。但是,我不确定如何引用 .ascx 页面的隐藏代码。

当前代码:

<ul>
<li id="form1" runat="server"><a title="a" href="a.aspx" target="_blank">A Form</a></li>
<li id="form2" runat="server"><a title="b" href="b.aspx" target="_blank">B Form</a></li>
</ul>

代码隐藏:

Private Sub Customer_LoadData()
        'DECLARE LOCAL VARIABLES
        Dim objContract As Contract = Nothing
        Dim objContractDL As New ContractDL
        'RETRIEVE THE CUSTOMER'S CONTRACT INFORMATION
        If objContractDL.Read(objContract, zintCustomerID) Then
            Call DisplayCustomer(objContract)
            Call DisplayForms(objContract)
        End If
    End Sub    
Private Sub DisplayForms( _
            ByVal objContract As Contract _
        )
            If (objContract.fieldFedLoansFlag = "0") Then
                authform1.Visible = False           
            Else
                authform1.Visible = True
            End If
End Sub

我以前从未见过.ascx.vb页面,所以我认为这不是解决方案。

从上面的注释中,您使用的是页面指令,而自定义控件应该使用控制指令

<%@ Control Language="vb" AutoEventWireup="false" CodeFile="menu2.ascx.vb"
Inherits="menu2" %>

从Microsoft网站 用户控件和页面之间的区别

用户控件在以下方面与 ASP.NET 网页不同:

  • 用户控件的文件扩展名为 .ascx。
  • 用户控件包含定义配置和其他属性的 @ Control 指令,而不是 @ Page 指令。
  • 用户控件不能作为独立文件运行。相反,您必须将它们添加到 ASP.NET 页,就像任何控件一样。
  • 用户控件中没有 html、正文或窗体元素。这些元素必须位于托管页面中。

最新更新