Есть 4 файла. Default.aspx и WebUserControl.ascx.
Default.aspx
- Код: Выделить всё
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>
<%@ Register Src="~/WebUserControl.ascx" TagPrefix="aaa" TagName="bbb" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Untitled Page</title>
</head>
<body>
<form id="form1" runat="server">
<div>
</div>
</form>
</body>
</html>
Default.aspx.vb
- Код: Выделить всё
Partial Class _Default
Inherits System.Web.UI.Page
Dim A As webusercontrol
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
A = New WebUserControl
form1.Controls.Add(A)
End Sub
End Class
WebUserControl.ascx
- Код: Выделить всё
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="WebUserControl.ascx.vb" Inherits="WebUserControl" %>
Hello!
WebUserControl.ascx.vb
- Код: Выделить всё
Partial Class _Default
Inherits System.Web.UI.Page
Dim A As WebUserControl
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
A = New WebUserControl
form1.Controls.Add(A)
End Sub
End Class
По идее, этот код должен добавлять контрол на Web-страницу. Но не добавляет. Причем события Page_Load, Page_Init у контрола вызывается. Но тем не менее, его содержимое(текст Hello) не отображается на форме.
Если, например, в контрол вставить элемент с id=id1 runat=server то в событии Form_Load контрола id1=nothing. То есть такое ощущение, что контрол никоим образом не привязывается к .ascx-файлу.
Как быть?