如何在ASP.NET页面上使用Subclassed控件?

时间:2010-03-12 13:07:36

标签: c# asp.net user-controls subclass

我已将DropDownList子类化,以添加特定于我的应用程序的功能:

public class MyDropDownList : DropDownList
{
    ...
}

...然后在Web.Config引用它,这是我认为事情开始出错的地方:

<pages theme="Main">
    <controls>
        <add tagPrefix="bob" tagName="MyDropDownList" src="~/Components/MyDropDownList.cs" />
    </controls>
</pages>

我对它的引用不起作用:

<tr><td>Category</td>
   <td><bob:MyDropDownList runat="server" ID="Category"... />

我最好的线索是编译错误信息:

"The file 'src' is not a valid [sic] here because it doesn't expose a type."

我想我在这里误用了如何创建Web用户控件的知识。我希望能够做的是在ASP.NET页面上引用此控件,就像我对父DropDownList一样。重构为包含DropDownList的Web用户控件是不可取的,因为我想对其应用RequiredFieldValidator

2 个答案:

答案 0 :(得分:8)

<pages theme="Main">
    <controls>
        <add tagPrefix="bob" namespace="MyProject" assembly="MyProject" />
    </controls>
</pages>

这应该可以解决问题。

答案 1 :(得分:5)

@Joops回答救了我。

我做的不同之处是在页面顶部注册了命名空间,因为我并不是每个地方都需要它。

<%@ Register TagPrefix="myTagPrefix" Namespace="MySolution.MyProject.Foo.Bar"
        Assembly="MySolution.MyProject" %>
欢呼Joop!