Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   ASP .Net Building Controls (http://www.velocityreviews.com/forums/f59-asp-net-building-controls.html)
-   -   String Array Property produces Parser Error (http://www.velocityreviews.com/forums/t758108-string-array-property-produces-parser-error.html)

Rémy Samulski 01-03-2006 10:41 AM

String Array Property produces Parser Error
 
Dear readers,

I'm having problems with creating a custom control that accepts an
array of strings as a property. First I used the following code which
produced a Parser Error

<Bindable(True), Category(_ClassName)> _
Public Property [MenuItems]() As String()
Get
Return CType(ViewState("__stringMenuItems"), String())
End Get
Set(ByVal Value As String())
ViewState("__stringMenuItems") = Value
End Set
End Property

Afterwards I tried several attributes, one of them
(PersistenceMode(PersistenceMode.InnerDefaultPrope rty)) produces
additional "html" tags but this doesn't work either.

Does anyone know how to solve this?

Many thanks,
Rémy Samulski


Mike MacMillan 01-03-2006 07:52 PM

Re: String Array Property produces Parser Error
 
Rémy,
it is fully possible to create a property who's underlying type is a
string array. rather then dealing with the sizing issues of a static
array though, perhaps you could make that property an Arraylist or
Hashtable?

Mike MacMillan

Rémy Samulski wrote:
> Dear readers,
>
> I'm having problems with creating a custom control that accepts an
> array of strings as a property. First I used the following code which
> produced a Parser Error
>
> <Bindable(True), Category(_ClassName)> _
> Public Property [MenuItems]() As String()
> Get
> Return CType(ViewState("__stringMenuItems"), String())
> End Get
> Set(ByVal Value As String())
> ViewState("__stringMenuItems") = Value
> End Set
> End Property
>
> Afterwards I tried several attributes, one of them
> (PersistenceMode(PersistenceMode.InnerDefaultPrope rty)) produces
> additional "html" tags but this doesn't work either.
>
> Does anyone know how to solve this?
>
> Many thanks,
> Rémy Samulski



Rémy Samulski 01-05-2006 10:44 AM

Re: String Array Property produces Parser Error
 
Dear Mike,

Thx for replying my question but I don't have any problems with sizing
issues of a string array. What I'm trying to do is to make a custom
control that can be set on design time in Visual Studio.net 2003.
That's why I have chosen a String array and not for example an
ArrayList (which can't be filled on design-time (one can only add
Objects without filling the values). Everything works well except when
I fill the String Array the HTML code of the concerned object is:

<cc1:TabPages id="TabPages4" runat="server" MenuItems="String[]
Array"></cc1:TabPages>

The parser than (after saving and reopening the WebForm) throws an
parser error stating it can't create an object of type
'System.String[]' from its string representation 'String[] Array' for
the 'MenuItems' property.

When I insert the
(PersistenceMode(PersistenceMode.InnerDefaultPrope rty)) attribute in
the code above (see first post) the HTML code changes to:

<cc1:TabPages id="TabPages5" runat="server">
<System.String Length="4"></System.String>
<System.String Length="8"></System.String>
</cc1:TabPages>

But now the parser return the error: '' could not be set on property
'MenuItems'. Furthermore when I select the view HTML the HTML code
shows the error: The active schema does not support the element
'System.String'.

Anyone an example on how to implement an array property which can be
edited on design time?

Many thanks,
Rémy


Mike MacMillan 01-06-2006 07:06 PM

Re: String Array Property produces Parser Error
 
Remy,
it is possible to have a variable represet a string array, but there
will need to be a bit of extra work on your side. if this property
will be hardcoded into the tag, you can build the property perhaps
during the AddParsedSubObject method of the page/control that contains
your custom control. ex:

<cc1:Something someAttrib="12,33,45,66,77,823,12"/>

this could be parsed into an int or string array during the
AddParsedSubObject method (or OnInit, or whatever...). you could even
provide a custom Set accessor for the property that exposes this array,
and parse the deliminated string there. easy answer though, you won't
be able to define on the frontend the contents of the array, you will
need a bit of manual work to make it an array.

Mike


Rémy Samulski wrote:
> Dear Mike,
>
> Thx for replying my question but I don't have any problems with sizing
> issues of a string array. What I'm trying to do is to make a custom
> control that can be set on design time in Visual Studio.net 2003.
> That's why I have chosen a String array and not for example an
> ArrayList (which can't be filled on design-time (one can only add
> Objects without filling the values). Everything works well except when
> I fill the String Array the HTML code of the concerned object is:
>
> <cc1:TabPages id="TabPages4" runat="server" MenuItems="String[]
> Array"></cc1:TabPages>
>
> The parser than (after saving and reopening the WebForm) throws an
> parser error stating it can't create an object of type
> 'System.String[]' from its string representation 'String[] Array' for
> the 'MenuItems' property.
>
> When I insert the
> (PersistenceMode(PersistenceMode.InnerDefaultPrope rty)) attribute in
> the code above (see first post) the HTML code changes to:
>
> <cc1:TabPages id="TabPages5" runat="server">
> <System.String Length="4"></System.String>
> <System.String Length="8"></System.String>
> </cc1:TabPages>
>
> But now the parser return the error: '' could not be set on property
> 'MenuItems'. Furthermore when I select the view HTML the HTML code
> shows the error: The active schema does not support the element
> 'System.String'.
>
> Anyone an example on how to implement an array property which can be
> edited on design time?
>
> Many thanks,
> Rémy



Rémy Samulski 01-11-2006 05:42 PM

Re: String Array Property produces Parser Error
 
Dear Mike,

OK this is the "over my head" stuff. Is it possible to add some
attribute to a property that will prevent the value to be set in the
HTML? What I'm proposing is 2 properties: one will be the in the
background property that isn't visible in the IDE (<Browsable(False),
EditorBrowsable(EditorBrowsableState.Never)>). This background property
will be a string that has to be splitted to get the array we want. The
other is a array property that can be edited using the IDE, but it
shouldn't add any values in the HTML part in order to not rise a parser
error.

Hmm, hope it is clear what I'm trying to say =(

Many thanks for your previous answers hope you can help me out with
this,
Rémy


Mike MacMillan 01-13-2006 12:37 AM

Re: String Array Property produces Parser Error
 
Remy,
so what you're saying is you'd like to have 2 properties; one will
return string and will hold a delimited set of data, the other will be
an array and will hold the delimited data in a strongly typed array.
further, you'd like the user to modify the array's contents using the
IDE, and have that persist the correct delimited string in the string
property? you will need custom design time support for your control to
set the contents of that property correctly. also, being the IDE can't
see the string property, users coding directly(such as with notepad)
will still see the string property as a valid property to assign to.

Mike MacMillan

Rémy Samulski wrote:
> Dear Mike,
>
> OK this is the "over my head" stuff. Is it possible to add some
> attribute to a property that will prevent the value to be set in the
> HTML? What I'm proposing is 2 properties: one will be the in the
> background property that isn't visible in the IDE (<Browsable(False),
> EditorBrowsable(EditorBrowsableState.Never)>). This background property
> will be a string that has to be splitted to get the array we want. The
> other is a array property that can be edited using the IDE, but it
> shouldn't add any values in the HTML part in order to not rise a parser
> error.
>
> Hmm, hope it is clear what I'm trying to say =(
>
> Many thanks for your previous answers hope you can help me out with
> this,
> Rémy




All times are GMT. The time now is 07:16 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.