powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Custom Control содержит колекцию - как сделать
12 сообщений из 12, страница 1 из 1
Custom Control содержит колекцию - как сделать
    #32866231
igor_fle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как сделать Custom Control, который содержит свойство коллекцию Rows как на примере:



<pds:CustomControl>
<Rows>
<Row Num='1' Status='1' ... />
<Row Num='2' Status='1' ... />
</Rows>
</pds:CustomControl>
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866245
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
тебе надо
1. создать класс Row - элемент коллекции ряда
2. создать коллекцию Rows - коллекцию объектов типа rows
3. создать readonly свойство типа Rows
4. к этому свойству добавь атрибуь ментаданных
<DesignerSerializationVisibility(DesignerSerializationVisibility.Content), _
NotifyParentProperty(True), _
PersistenceMode(PersistenceMode.InnerProperty), _
Editor(GetType(Rows), GetType(CollectionEditor))> _
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866306
igor_fle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо, получилось.
Только с едитором не получилось, не нашел я такой едитор.
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866312
igor_fle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть еще одна проблема, в design пишет Еrror Creating Control : Could not be set on property Rows
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866476
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
свойство Rows стоит как readonly?
а editor стоит подключить. правда он в хитрой dll находиться, ее нужно персонально подключить.
просто я как раз такое свойсвто в своем контроле делал, по функциям очень похожее на ваше
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866483
igor_fle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
свойство Rows стоит как readonly , только get

хитрое ДЛЛ надо самому писать?
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866586
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, в разделе get свойства необходимо вызвать EnsureChildControls()
а длл писать не надо - Editor из стандартной system.dll , если верить msdn. так а она и так ведь подключена.
и должно все получиться. перекомпилируй проект
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866587
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да, для Editor нужно
Imports System.ComponentModel
если нет - добавь
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32866588
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
поправочка - тебе ведь нужнен System.ComponentModel.Design.CollectionEditor, а он находиться в System.Design.dll - вот ее то и подключи
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32873550
VP CZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sorry I'm writing in english. I'm having probably the same problem with the control property (collection Tabs) - the error message: '' could not be set on property 'Tabs'.

After setting the control property Tabs as Readonly (with the Get only) the error message changed to 'Tabs' could not be initialized. The error message appears only after rebuilding the project and returning back to design mode in VS.NET.

When inserting my new control on the page in design mode I can set all its properties (incl. the collection properties) and the final HTML page looks pretty good. The error appears just only when returning back to design mode. Could you help me please?

Vladimir CZ

the collection item:
Public Class mZalozka
Public Property TextNadpis() As String ...
Public Property NavigateUrl() As String ...
Public Property CommandArgument() As String ...
End Class

the collection:
Public Class mZalozky
Inherits CollectionBase
Default Public ReadOnly Property Item(ByVal index As Integer) As mZalozka...
Public Sub Add(ByRef Zalozka As mZalozka)....
Public Sub Remove(ByVal index As Integer)....
End Class

my control class:
<ToolboxData("<{0}:mTab runat=server></{0}:mTab>"), ParseChildren(True), PersistChildren(False)> _
Public Class mTab
Inherits System.Web.UI.WebControls.WebControl
Implements IPostBackEventHandler...

local:
Private _zalozky As New mZalozky

the collection property:
<Category("Misc"), Browsable(True), PersistenceMode(PersistenceMode.InnerProperty), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Content), NotifyParentProperty(True), _
Editor(GetType(mZalozky), GetType(System.ComponentModel.Design.CollectionEditor))> _
Public ReadOnly Property Tabs() As mZalozky
Get
Return _zalozky
End Get
End Property

and finally the aspx control snippet:
<mc:mTab id="MTab47" runat="server">
<Tabs>
<mc:mZalozka NavigateUrl="" TextNadpis="Text" CommandArgument=""></mc:mZalozka>
<mc:mZalozka NavigateUrl="" TextNadpis="Text" CommandArgument=""></mc:mZalozka>
</Tabs>
</mc:mTab>
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32875943
monstrU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот так попробуйте

<Category("Misc"), Browsable(True), PersistenceMode(PersistenceMode.InnerProperty), _
DesignerSerializationVisibility(DesignerSerializationVisibility.Content), NotifyParentProperty(True), _
Editor(GetType(mZalozky), GetType(System.ComponentModel.Design.CollectionEditor))> _
Public ReadOnly Property Tabs() As mZalozky
Get

EnsureChildControls()

Return _zalozky
End Get
End Property
...
Рейтинг: 0 / 0
Custom Control содержит колекцию - как сделать
    #32875993
VP CZ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ooh - with the same result - after returning back to VS designer the error message 'Tabs' could not be initialized. I had to give up after three days and had to change the collection property to simple string delimited with *. Since now it works well and I can do the rest of my job :(

Vladimir
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Custom Control содержит колекцию - как сделать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]