2013-04-11 3 views
1

У меня есть пользовательский элемент управления, который в основном просто имеет выпадающий список в нем (более того, чем это очевидно, но выпадающее меню - это все, что вы видите).DropDownList в User Control - как его получить, элементы списка можно добавить во время разработки?

В Visual Studio вы можете добавлять элементы в обычный раскрывающийся список от дизайнера. Как я могу расширить эту функциональность до своего пользовательского элемента управления?

Если я печатаю вне детали вручную, как показано ниже, она работает при тестировании в браузере, но дает мне ошибки в конструкторе

<uc2:Input_DropDownList ID="Input_DropDownList1" runat="server"> 
    <ListItems> 
     <asp:ListItem Text="Apples" Value="0" /> 
     <asp:ListItem Text="Oranges" Value="1" /> 
     <asp:ListItem Text="Grapes" Value="2" /> 
     <asp:ListItem Text="Strawberries" Value="3" /> 
    </ListItems> 
</uc2:Input_DropDownList> 

Ошибка:

Error Creating Control - Input_DropDownList1 
    Type 'System.Web.UI.UserControl' does not have a public property named 'ListItems' 

Codebehind:

<PersistenceMode(PersistenceMode.InnerProperty)> _ 
    Public ReadOnly Property ListItems() As ListItemCollection 
     Get 
      Return InputField.Items 
     End Get 
    End Property 

Я понимаю, в чем проблема ... но я не уверен, как обойти это. Любая помощь оценивается. Благодаря

ответ

0

Свойство управления обнажая ListItems() должны иметь эти атрибуты:

<DesignerSerializationVisibility(DesignerSerializationVisibility.Content), 
NotifyParentProperty(True), 
PersistenceMode(PersistenceMode.InnerDefaultProperty)> 
Public ReadOnly Property ListItems() As ListItemCollection 
    Get 
     Return InputField.Items 
    End Get 
End Property 
+0

Спасибо за ответ. Этот код, похоже, не помогает. Я все еще получаю ту же ошибку в дизайнере. Если я использую InnerDefaultProperty, «ListItem» вообще не отображается в intellisense. Если я изменил его на InnerProperty (как я использовал), он появится в intellisense, но ошибки в дизайнере. – user1003916

+0

нечетный. У меня есть этот ритуал кода, чтобы проверить его, и они отлично работают. никакой ошибки вообще. вы перекомпилировали свой проект? – ajakblackgoat

+0

Да. Я скопировал и наклеил ваш код дословно. Когда я пытаюсь добавить listitems в пользовательский элемент управления, он вызывает большую уродливую ошибку, говорящую, что system.web.ui.usercontrol не имеет общедоступного свойства, называемого listitems ... несмотря на то, что свойство существует и является общедоступным. показывает, как недвижимость в IntelliSense: http://i.imgur.com/ZXICWKp.png После того, как я на самом деле поставить код там, дизайнер выкрутасы: http://i.imgur.com /EKQ0xCb.png – user1003916

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