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



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

хитрое ДЛЛ надо самому писать?
...
Рейтинг: 0 / 0
16.01.2005, 00:43
    #32866586
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
да, в разделе get свойства необходимо вызвать EnsureChildControls()
а длл писать не надо - Editor из стандартной system.dll , если верить msdn. так а она и так ведь подключена.
и должно все получиться. перекомпилируй проект
...
Рейтинг: 0 / 0
16.01.2005, 00:44
    #32866587
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
да, для Editor нужно
Imports System.ComponentModel
если нет - добавь
...
Рейтинг: 0 / 0
16.01.2005, 00:46
    #32866588
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
поправочка - тебе ведь нужнен System.ComponentModel.Design.CollectionEditor, а он находиться в System.Design.dll - вот ее то и подключи
...
Рейтинг: 0 / 0
20.01.2005, 02:55
    #32873550
VP CZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
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
21.01.2005, 00:07
    #32875943
monstrU
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
вот так попробуйте

<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
21.01.2005, 01:55
    #32875993
VP CZ
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Custom Control содержит колекцию - как сделать
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
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Custom Control содержит колекцию - как сделать / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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