2012-06-11 2 views
0

Я создал свои собственные контроллеры проверки, чтобы работать с моими собственными элементами управления пользователями.Невозможно передать «сложные объекты» в качестве параметров в режиме проектирования

Моей проблема:

классические валидаторы принимают параметры в «режиме конструктора», например,

<asp:RequiredFieldValidator ControlToValidate="txtFirstname" runat="server" /> 

, и я хотел бы сделать то же самое в моем контроле, но это, кажется, когда я прохожу «ControlToValidate» контрольного идентификатор, я получаю эту ошибку:

Не удается создать объект типа 'System.Web.UI.WebControls.WebControl' из строкового представления 'txtFirstname' для свойства 'ControlToValidate'.

Какой «шаблон» мне нужно реализовать, чтобы я мог максимально использовать страницу «ascx» вместо того, чтобы подключать все на моей странице «ascx.cs».

p.s. Я называю «теги», которые я создаю на странице дизайна «ascx», но я думаю, что это, вероятно, неправильный термин, который, как я подозреваю, составляет половину причины, по которой я не могу найти anythign в google для этого.

+0

Я обнаружил, что кто-то задает этот вопрос на другом сайте, что также является тем, что я пытаюсь сделать с помощью _normal user controls_, но с классическим ASP.NET (вместо того, что касается MVC, он упоминает разные элементы управления): http: //forums.asp.net/t/1247195.aspx/1 – Nnoel

ответ

0

Ваш код просто должен выглядеть примерно так (все в .ascx):

<asp:TextBox id="txtFirstName" 
     Text="Enter a value" 
     runat="server"/> 

<asp:RequiredFieldValidator id="RequiredFieldValidator1" 
     ControlToValidate="txtFirstName" 
     Text="Required Field!" 
     runat="server"/> 

Я предполагаю, что вы не размещения RequiredFieldValidator в той же области - вызывает эту проблему.

+0

Я использую свои собственные пользовательские элементы управления, которые я создал, расширяя их из System.Web.UI.Webcontrols.WebControl и мои пользовательские Validators расширяют систему. Web.UI.Control, поэтому ваш ответ бесполезен. Я не использую элементы управления запасами или валидаторы. – Nnoel

+0

@Nnoel - Тогда это может быть вашей проблемой, вы можете делать что-то необычное, и мы, конечно, не можем видеть его здесь. –

+0

ok, простые инструкции по воссозданию моей проблемы: 1. создайте свой собственный пользовательский элемент управления [control1] (по возможности расширьте текстовое поле), затем создайте другой настраиваемый элемент управления [control2] (продолжите System.Web.UI.Control) и создайте свойство typeof (control1) в control2, а затем убедитесь, что вы можете передать control1 в control2 через страницу «ascx». Simples. У меня есть другие элементы управления, которые должны делать то же самое, что и «предварительный загрузчик изображений», который нуждается в доступе к каждому элементу управления, который нуждается в предварительно загруженных изображениях. Все они должны быть «связаны» в коде позади, передавая как параметры в виде «ascx 'не работает. – Nnoel

Смежные вопросы