나는 XSLT를 통해 XML로부터 사용자 정의 컨트롤을 동적으로 생성합니다.Page.ParseControl이 올바른 기본 클래스에서 상속 된 컨트롤을 만들지 않는 이유는 무엇입니까?
<%@ Control Language="C#" AutoEventWireup="true" Inherits="Library.Web.UI.GeneratedFormBase, MyAssembly" %>
<div class="myCssClass">
<asp:TextBox ID="d" runat="server" OnTextChanged="OnTextChanged" />
<asp:Label runat="server" AssociatedControlID="SomeName" AccessKey="n">Label Text</asp:Label>
<asp:TextBox ID="SomeName" runat="server" OnTextChanged="OnTextChanged" />
<asp:Label runat="server" AssociatedControlID="SomeOtherName">Welcome</asp:Label>
<asp:TextBox ID="SomeOtherName" runat="server" OnTextChanged="OnTextChanged" />
<asp:Button ID="OK" runat="server" OnClick="ButtonClick" Text="Save" />
</div>
지금 동적으로 컨트롤을 만드는 Page.ParseControl (theGeneratedString)를 사용 : 출력이 같은 내용으로 문자열입니다.
Inherits
에 선언 된 유형이 있으며 찾을 수 있습니다. 거기에 또 다른 (즉, 존재하지 않는) 유형을 선언하면 Parser Error
예외가 발생하므로 파서가이 유형을 찾고 찾은 것으로 확신합니다.
그럼에도 불구하고 ParseControl
에서 생성 된 컨트롤은 System.Web.UI.Control 유형이며 Inherits 선언에 명시된 (분명히 파싱되고 위치가 지정된) 컨트롤이 아닙니다.
왜 그런가요? 그리고 컨트롤이 올바른 유형인지 어떻게 확인할 수 있습니까?