Как использовать элемент управления подклассами на странице ASP.NET? - PullRequest
9 голосов
/ 12 марта 2010

Я вложил в подкласс 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."

Я полагаю, что неправильно использую знания о том, как создать здесь пользовательский веб-элемент управления. Я хочу иметь возможность ссылаться на этот элемент управления на странице ASP.NET, как если бы я был родителем DropDownList. Рефакторинг обратно в пользовательский веб-элемент управления, содержащий DropDownList, нежелателен, поскольку я хочу применить к нему RequiredFieldValidator.

Ответы [ 2 ]

8 голосов
/ 12 марта 2010
<pages theme="Main">
    <controls>
        <add tagPrefix="bob" namespace="MyProject" assembly="MyProject" />
    </controls>
</pages>

Это должно сработать.

5 голосов
/ 20 апреля 2010

@ Ответ Joops спас меня.

То, что я сделал по-другому, - это зарегистрировал пространство имен в верхней части моей страницы, потому что оно мне не нужно везде.

т.

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

ура Joop!

...