c# - Persisting a collection backed by viewstate in a CompositeControl -
maybe it's been long day i'm having trouble persisting collection backed asp.net viewstate in compositecontrol. here's simplified version:
public class mycontrol : compositecontrol { public collection<myobject> myobjectcollection { { return (collection<myobject>)viewstate["coll"] == null ? new collection<myobject>() : (collection<myobject>)viewstate["coll"]; } set { viewstate["coll"] = value; } } } public partial class testpage : system.web.ui.page { protected void btn_click(object sender, eventargs e) { mycontrol1.myobjectcollection.add(new myobject()); } }
when button clicked, event hander btn_click executes fine, setter myobjectcollection never gets called, hence new myobject() never gets persisted.
i think i'm having blonde moment. fancy helping out?
calling add()
on collection isn't same calling setter on myobjectcollection
property.
it's reason tools fxcop suggest don't have setters on collection properties - either make setter private or remove completely.
you may need implement own collection type , override add , remove methods, such when called, persistence code executed.
Comments
Post a Comment