1
我通過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
中聲明的類型是存在的並且可以找到。如果我在那裏聲明另一個(即不存在的)類型,則會拋出異常,所以我完全相信解析器會查找此類型並找到它。
不過,從ParseControl
生成的控件的類型是System.Web.UI.Control,而不是在Inherits-declaration中聲明的控件(顯然也是解析和定位的)。
這是爲什麼,我如何確保控件的類型正確?