Mover List Control for ASP.NET 1.x/2.0
page 11 of 14
by Bilal Haidar
Feedback
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 60366/ 98

Serializing complex properties at Design-time

If you look at the downloadable code, you will notice that we have added an attribute to the Style properties and the ListItemCollection properties:

DesignerSerializationVisibility(DesignerSerializationVisibility.Content)

The DesignerSerializationVisiblity attribute should be added to public properties to specify whether those properties should be serialized in the composite control at design time or not.

You still cannot see the picture here? We will show a code snippet taken from a web form where the mover control has been added and the BackColor of the left listbox has been set.

Listing 21

<cc1:bhMover id="BhMover1" runat="server">
  <LeftListBoxStyle BackColor="Red"></LeftListBoxStyle>
</cc1:bhMover>

If you go back to the public property named LeftListBoxStyle, you would see the above mentioned attribute specified. That attribute takes as input an enumeration of type DesignerSerializationVisibility which has three different values.

Visible: It forces the composite control to serialize the designated property at design time and is mainly used for simple data type properties.

Content: It forces the composite control to serialize the designated property at design time and is mainly used for complex data types.

Hidden: It forces the composite control not to serialize the designated property at design time.

Since the Style class is a complex data type, we have used the Content value and the above code showed how the LeftListBoxStyle property is serialized and rendered at design time once you place the composite control on a web form.

More on the DesignerSerializationVisibility attribute can be found in this article: Serialize properties correctly with DesignerSerializationVisibilityAttribute.

You have also noticed the presence of another attribute, PersistenceMode attribute. This attribute specifies how the property should be persisted by the designer, i.e. whether the property will be shown as an attribute or as a nested element with the property fields nested inside. This attribute takes as input an enumeration of type PersistenceMode which has the following values:

Attribute: The property will be persisted as an attribute on the main composite control tag. This value is mainly used for simple data type properties.

InnerProperty: The property will be persisted as a nested element within the composite control tag. This value is mainly used for complex data type properties.

More on this topic can be found at this article: Persist properties correctly with PersistenceModeAttribute.

Hint: Once again you are advised to check the article mentioned above by Miguel Castro, where we have came up with that idea of serialization and other important ideas.


View Entire Article

User Comments

Title: waov   
Name: almora
Date: 2011-04-26 4:09:13 AM
Comment:
Nice info here Bilal, thanks dude.
Title: How to get right side selected value   
Name: Kusum
Date: 2008-05-27 8:12:08 AM
Comment:
Hii,
Can anybody help me that how can I access the right side selected values at server side? I want to save right side selected value in database, so on click of save button, how can I access the right hand side list box item at server? Any property?
- Kusum
Title: Error on Mover control while implementing   
Name: Sandeep
Date: 2008-03-23 11:17:58 AM
Comment:
Hello,
I am getting below error while implementing mover control:

"Control 'leftlstbox' of type 'xListBox' must be placed inside a form tag with runat=server."

Please help me, even through below forum I have tried Peruri Srinivasulu steps.

Thanks,
Sandeep
Title: Re: Vessel   
Name: Bilal Haidar
Date: 2007-11-15 1:25:39 AM
Comment:
Vessel,
I guess, I have used the "," for joining elements. You can change it to something like "|" or "$" or any other not commonly used character.

Thanks
Title: Re: Vessel   
Name: Bilal Haidar
Date: 2007-11-15 1:22:27 AM
Comment:
Hello Vessel,
Are you at the ACK team?

Regards
Title: Ajax version?   
Name: Vessel
Date: 2007-11-14 4:23:30 PM
Comment:
Hi Bilal Haidar

How about to make similar Ajax-control and contribute it with Ajax Control Toolkit.

I think there will be use for it ;)

-Vessel
Title: Index was outside the bounds of the array.   
Name: Vessel
Date: 2007-11-14 3:59:26 PM
Comment:
If list item have comma ',' inside, control will crash, maybe your problem too purusingh.

Crash-item: "Choose me, Buddy"
Okay-item: "Choose me Buddy"

So, while populating list-items sanitize commas out.
Title: Re: purusingh   
Name: Bilal Haidar
Date: 2007-10-15 11:32:24 AM
Comment:
Hello,
Can you please show me some code where this exception is generated?
I have been using this control for a while and haven't got such an exception!

Just to note, such an error occurs when you are trying to access elements inside the control that are not present i.e. accessing with index greater than the max. index inside the control!

Thanks
Title: Good Article   
Name: purusingh
Date: 2007-10-15 5:33:41 AM
Comment:
Every thins is ok, we are using the control but there is some problem I am getting following error


Index was outside the bounds of the array.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.

Source Error:

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace:


[IndexOutOfRangeException: Index was outside the bounds of the array.]
xListControls.xListBox.System.Web.UI.IPostBackDataHandler.LoadPostData(String postDataKey, NameValueCollection postCollection) +1486
System.Web.UI.Page.ProcessPostData(NameValueCollection postData, Boolean fBeforeLoad) +723
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4798
Title: good articles   
Name: good articles
Date: 2007-09-24 3:54:34 AM
Comment:
very good!!!
Title: Re: Vessel   
Name: Bilal Hadiar [MVP]
Date: 2007-04-04 1:53:56 AM
Comment:
Hello Vessel,
Can you illustrate more please?

Thanks
Title: Index was outside the bounds of the array.   
Name: Vessel
Date: 2007-03-24 2:38:07 PM
Comment:
MoverControl can't stand with ',' in ListItemValue because it uses comma as inside delimiter.

Array-handling crashes with 'Index was outside the bounds of the array.'

Took awhile to find it out ;)
Title: This is not working for me   
Name: Daniel
Date: 2007-03-21 10:10:14 AM
Comment:
IM loading the left list to a db object but when I click on the arrow to move it I notice that the page load happens several times and doesnt move teh object.
Title: error when programatically creating control   
Name: Peruri Srinivasulu
Date: 2007-02-14 10:24:59 PM
Comment:
{"Control 'ctl02_leftlstbox' of type 'xListBox' must be placed inside a form tag with runat=server."}

when placed the following code in page init.


protected override void OnInit(EventArgs e)
{
base.OnInit(e);

MoverControl.bhMover moveR1 = new bhMover();
this.Controls.Add(moveR1);
}
Title: Good Work   
Name: Tim Digital
Date: 2007-02-09 8:42:19 AM
Comment:
Excellent Work Bilal,

Fluent consulting also has a pretty neat control (ListTransfer)that I've been using in my projects :-

http://www.fluentconsulting.com/components/Fluent.ListTransfer/
Title: Good article   
Name: vishal rathod
Date: 2007-01-29 9:01:02 AM
Comment:
Nice article.
and exactly what i want.
Title: Nice Work as Usual   
Name: El Chokr
Date: 2007-01-09 3:05:45 PM
Comment:
Nice Work as Usual
Title: nice   
Name: pranot
Date: 2007-01-08 4:31:10 AM
Comment:
really nice and exactly what i was looking for
i just spent 2 days writing something similar but using client-side javascript to move items.
also, it would be helpful if you could provide some screenshots, and a working demo which can be viewed online.
Title: Good Article   
Name: Haissam Abdul Malak
Date: 2007-01-08 2:51:47 AM
Comment:
Good article, keep up the good work

Best Regards

Product Spotlight
Product Spotlight 





Community Advice: ASP | SQL | XML | Regular Expressions | Windows


©Copyright 1998-2021 ASPAlliance.com  |  Page Processed at 2021-12-04 6:33:07 PM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search