我已将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
。
答案 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!