Ascx控制可见的虚假问题

时间:2013-05-14 19:07:02

标签: asp.net vb.net ascx

我在一个ASPX页面中有一个Tab控件,它有5个选项卡。我在这个控件上加载了5个ascx页面。我在第二个主要的ascx控件中有4个ascx子控件。这就像第二个主要的ascx页面上的向导。当我加载第二个TAB时,我将使第一个子ascx控件可见。根据对该控件的任何值的选择,我对第二个ascx子控件显示为true,对第一个ascx子控件显示为false。多数民众赞成没有用。我无法在页面中看到任何内容。它的装载是空的,没有任何控件。

可能是什么问题?

父ascx - 来自子ascx的自定义事件

         Private Sub Page_Init(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Init
            ReviewEnterReportDetailsId.Visible = True
            EnterReportDetailId.Visible = True
            EnterReportViewDetail1.Visible = True
        End Sub

         Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            ReviewEnterReportDetailsId.Visible = True
            EnterReportDetailId.Visible = False
            EnterReportViewDetail1.Visible = False
        End Sub

         Protected Sub ReviewEnterReportDetailsId_ERDScreenEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles ReviewEnterReportDetailsId.ERDScreenEvent
            ReviewEnterReportDetailsId.Visible = False
            EnterReportDetailId.Visible = True
            EnterReportViewDetail1.Visible = False
        End Sub

儿童ascx -

只是举起一个事件来改变下一个控件

1 个答案:

答案 0 :(得分:0)

在没有看到实际代码的情况下,有点难以说,但是,当您使用Visible=False时,该控件实际上不会呈现.Net,因此在源代码视图中看不到任何内容。

理想情况下,您应该将这些控件放入<div>并根据您的条件显示/隐藏<div>

<强>更新

此外,查看您(最近添加的)代码,您可以在Init中开始显示全部3,然后在load中隐藏最后一个代码2.似乎有点无意义{{ 1}}在load

之后立即被解雇

此外 - 如果您未将initload代码包装在init中,则每次重新加载页面时都会触发该代码。将您的代码包裹在If (Not IsPostback)中,这会阻止If (Not IsPostback)覆盖您在load

中设置的内容