【问题标题】:Ascx control visible false issueAscx 控件可见错误问题
【发布时间】:2013-05-14 19:07:01
【问题描述】:

我在一个有 5 个选项卡的 ASPX 页面中有一个选项卡控件。我在这个控件上加载了 5 个 ascx 页面。我在第二个主 ascx 控件中有 4 个 ascx 子控件。这类似于第二个主 ascx 页面上的向导。当我加载第二个 TAB 时,我将使它对第一个子 ascx 控件可见。基于对该控件上任何值的选择,我将第二个 ascx 子控件设为可见真,而将第一个 ascx 子控件设为可见假。那是行不通的。我无法在页面中看到任何内容。它的加载是空的,没有任何控件。

可能是什么问题?

父 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 -

只是引发一个事件来改变下一个控件

【问题讨论】:

  • 为我的答案添加了一些更新 - 应该让你继续前进。

标签: asp.net vb.net ascx


【解决方案1】:

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

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

更新

另外,查看您的(最近添加的)代码,您从 Init 开始显示所有 3,然后在 load 中隐藏最后 2 个。似乎有点毫无意义,因为 load 被正确解雇在你的init之后

另外 - 如果您没有将 loadinit 代码包装在 If (Not IsPostback) 中,那么每次重新加载页面时都会触发它。将您的代码包装在If (Not IsPostback) 中,它将防止load 覆盖您在ReviewEnterReportDetailsId_ERDScreenEvent 中设置的内容

【讨论】:

    猜你喜欢
    • 2011-08-05
    • 1970-01-01
    • 2012-05-11
    • 2020-05-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多