【发布时间】:2019-12-31 11:39:48
【问题描述】:
我有一个问题,即我的用户控件上的 Visible 属性总是返回 False,不管它是否应该在页面上可见。我有以下用户控制:
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="WebUserControl1.ascx.vb" Inherits="VB_WebApp_Test.WebUserControl1" %>
<h1>My User Control</h1>
Public Class WebUserControl1
Inherits UserControl
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.PreRender
If Visible Then
Console.WriteLine("VISIBLE")
End If
End Sub
End Class
我加载到以下页面:
<%@ Page Title="Home Page" Language="VB" MasterPageFile="~/Site.Master" AutoEventWireup="true" CodeBehind="Default.aspx.vb" Inherits="VB_WebApp_Test.Default" %>
<%@ Register src="WebUserControl1.ascx" tagName="WebUserControl" tagPrefix="Mine"%>
<asp:Content ID="BodyContent" ContentPlaceHolderID="MainContent" runat="server">
<asp:UpdatePanel runat="server">
<ContentTemplate>
<table>
<tr>
<td>
<asp:MultiView runat="server" ID="multiView">
<asp:View ID="vInit" runat="server">
<h1>Initial View</h1>
<asp:Button runat="server" ID="toControlButton" Text="To Control"/>
</asp:View>
<asp:View ID="vControl" runat="server">
<Mine:WebUserControl ID="wuc1" runat="server"/>
<asp:Button runat="server" ID="toNonControlButton" Text="To Non Control"/>
</asp:View>
</asp:MultiView>
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Content>
Public Class [Default]
Inherits Page
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
multiView.ActiveViewIndex = 0
End Sub
Public Sub ToControl(sender As Object, e As EventArgs) Handles toControlButton.Click
multiView.ActiveViewIndex = 1
End Sub
Public Sub ToNonControl(sender As Object, e As EventArgs) Handles toNonControlButton.Click
multiView.ActiveViewIndex = 0
End Sub
End Class
我想做的是让它在显示用户控件时执行一些初始化逻辑,但Visible 属性始终设置为False。我已经尝试连接到Load、PreRender 和Init 事件,并且所有这些事件的Visible 属性都是False。
【问题讨论】:
标签: asp.net vb.net user-controls