Ask a Question related to ASP.NET Building Controls, Design and Development.
-
yp.yean@gmail.com #1
Dirty property value persist problem
Hi,
I created a custom control, and encountered a dirty property value
persistence problem.
I created a property with a custom class type, call SQLSettings which
holds the SQL connection parameters, the class as follows:
public sealed class SQLSettings
{
private string serverName;
.......
public SQLSettings()
{
this.serverName = string.Empty;
......
}
[NotifyParentProperty(true)]
public string ServerName
{
get
{
return this.serverName;
}
set
{
this.serverName = value;
}
}
...................
And, I also created an mapping TypeConverter and UITypeEditor classes
to handle the design-time founctinality. The property I created in my
conbtrol as follows:
[BrowsableAttribute(true)]
[CategoryAttribute("Behavior")]
[BindableAttribute(true)]
[NotifyParentProperty(true)]
[EditorAttribute(typeof(SQLSettingsUITypeEditor),
typeof(UITypeEditor))]
[DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content)]
[TypeConverter((Type)typeof(SQLSettingsTypeConverte r))]
[PersistenceModeAttribute(PersistenceMode.InnerProp erty)]
public SQLSettings SQLSettingsData
{
get
{
return this._sqlSettings;
}
set
{
this._sqlSettings = value;
}
}
They all works fine when first set value to this property, I can see
the persisted data showed in .aspx file. When I go back to design view
and update the property value via my UITypeEditor, I can see the value
already updated in VS.NET properties browser. But when I turn to see
..aspx file in code view, I didn't see the dirty property value updated
in .aspx file. When I turn to design view, the updated property value
is lost, it remain keep the first persisted value.
How to solve this problem? Any idea?
Thank you for your kindly help.
yp.yean@gmail.com Guest
-
Property Inspector for Locked Content Doesn't SetContent Dirty
I have a property inspector for my locked content. When the user sets a new value in the inspector, the orig attribute of the MM:BeginLock tag is... -
Control Designer change property but does not persist
Hi All, I'm developing a custom control for ASP.NET (2.0 but this shouldn't matter). I've got a property PageID (Guid) in this control: ... -
WebControl Design View Persist Problem
I'm having some weird things happen in design view while editing a custom collection - I've been at this for about 4 weeks now, and have tried all... -
Shakira getting dirty with dildo
> Shakira spreading on bed with dildo I'd like to meet shakira. But let's keep it to on-topic newsgroups like alt.porn and comp.idiots -
help: shockwave dirty shadow!
Hi, I made a small scene in 3DStudioMax, without any lights. Rendering in Max is OK, but when I export to Shockwave3D, I get a dirty shadow on... -
Teemu Keiski #2
Re: Dirty property value persist problem
As it's complex type, property should be read-only
....
public SQLSettings SQLSettingsData
{
get
{
if (this._sqlSettings == null)
this._sqlSettings = new SQLSettings();
return this._sqlSettings;
}
}
--
Teemu Keiski
ASP.NET MVP, AspInsider
Finland, EU
[url]http://blogs.aspadvice.com/joteke[/url]
<yp.yean@gmail.com> wrote in message
news:1156393251.472673.191100@i3g2000cwc.googlegro ups.com...> Hi,
>
> I created a custom control, and encountered a dirty property value
> persistence problem.
> I created a property with a custom class type, call SQLSettings which
> holds the SQL connection parameters, the class as follows:
>
>
> public sealed class SQLSettings
> {
> private string serverName;
> .......
>
>
> public SQLSettings()
> {
> this.serverName = string.Empty;
> ......
> }
>
>
> [NotifyParentProperty(true)]
> public string ServerName
> {
> get
> {
> return this.serverName;
> }
> set
> {
> this.serverName = value;
> }
> }
> ..................
>
>
> And, I also created an mapping TypeConverter and UITypeEditor classes
> to handle the design-time founctinality. The property I created in my
> conbtrol as follows:
>
>
> [BrowsableAttribute(true)]
> [CategoryAttribute("Behavior")]
> [BindableAttribute(true)]
> [NotifyParentProperty(true)]
> [EditorAttribute(typeof(SQLSettingsUITypeEditor),
> typeof(UITypeEditor))]
>
> [DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content)]
>
> [TypeConverter((Type)typeof(SQLSettingsTypeConverte r))]
> [PersistenceModeAttribute(PersistenceMode.InnerProp erty)]
> public SQLSettings SQLSettingsData
> {
> get
> {
> return this._sqlSettings;
> }
> set
> {
> this._sqlSettings = value;
> }
> }
>
>
> They all works fine when first set value to this property, I can see
> the persisted data showed in .aspx file. When I go back to design view
> and update the property value via my UITypeEditor, I can see the value
> already updated in VS.NET properties browser. But when I turn to see
> .aspx file in code view, I didn't see the dirty property value updated
> in .aspx file. When I turn to design view, the updated property value
> is lost, it remain keep the first persisted value.
>
>
> How to solve this problem? Any idea?
> Thank you for your kindly help.
>
Teemu Keiski Guest
-
yp.yean@gmail.com #3
Re: Dirty property value persist problem
Dear Teemu,
Thank you for your kindly relply. But if the complex type property need
to be read-only, how can I set the value to it through my UITypeEditor?
Is there any solution? Thank you.
Daniel
Teemu Keiski 寫道:
> As it's complex type, property should be read-only
>
> ...
> public SQLSettings SQLSettingsData
> {
> get
> {
> if (this._sqlSettings == null)
> this._sqlSettings = new SQLSettings();
> return this._sqlSettings;
> }
>
> }
>
>
> --
> Teemu Keiski
> ASP.NET MVP, AspInsider
> Finland, EU
> [url]http://blogs.aspadvice.com/joteke[/url]
>
>
> <yp.yean@gmail.com> wrote in message
> news:1156393251.472673.191100@i3g2000cwc.googlegro ups.com...> > Hi,
> >
> > I created a custom control, and encountered a dirty property value
> > persistence problem.
> > I created a property with a custom class type, call SQLSettings which
> > holds the SQL connection parameters, the class as follows:
> >
> >
> > public sealed class SQLSettings
> > {
> > private string serverName;
> > .......
> >
> >
> > public SQLSettings()
> > {
> > this.serverName = string.Empty;
> > ......
> > }
> >
> >
> > [NotifyParentProperty(true)]
> > public string ServerName
> > {
> > get
> > {
> > return this.serverName;
> > }
> > set
> > {
> > this.serverName = value;
> > }
> > }
> > ..................
> >
> >
> > And, I also created an mapping TypeConverter and UITypeEditor classes
> > to handle the design-time founctinality. The property I created in my
> > conbtrol as follows:
> >
> >
> > [BrowsableAttribute(true)]
> > [CategoryAttribute("Behavior")]
> > [BindableAttribute(true)]
> > [NotifyParentProperty(true)]
> > [EditorAttribute(typeof(SQLSettingsUITypeEditor),
> > typeof(UITypeEditor))]
> >
> > [DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content)]
> >
> > [TypeConverter((Type)typeof(SQLSettingsTypeConverte r))]
> > [PersistenceModeAttribute(PersistenceMode.InnerProp erty)]
> > public SQLSettings SQLSettingsData
> > {
> > get
> > {
> > return this._sqlSettings;
> > }
> > set
> > {
> > this._sqlSettings = value;
> > }
> > }
> >
> >
> > They all works fine when first set value to this property, I can see
> > the persisted data showed in .aspx file. When I go back to design view
> > and update the property value via my UITypeEditor, I can see the value
> > already updated in VS.NET properties browser. But when I turn to see
> > .aspx file in code view, I didn't see the dirty property value updated
> > in .aspx file. When I turn to design view, the updated property value
> > is lost, it remain keep the first persisted value.
> >
> >
> > How to solve this problem? Any idea?
> > Thank you for your kindly help.
> >yp.yean@gmail.com Guest
-
Teemu Keiski #4
Re: Dirty property value persist problem
Note that read-only means that you don't set the reference, you set directly
its properties.means that in your editor, you don't instantiate new
SqlSettings, but rather set the properties of the instance returned to you
by the control. Though this also more from page parsing point of view,
generic rule is that complex types must be read-only because page parsing
won't set the instance.
--
Teemu Keiski
ASP.NET MVP, AspInsider
Finland, EU
[url]http://blogs.aspadvice.com/joteke[/url]
<yp.yean@gmail.com> wrote in message
news:1156555051.134775.112870@74g2000cwt.googlegro ups.com...
Dear Teemu,
Thank you for your kindly relply. But if the complex type property need
to be read-only, how can I set the value to it through my UITypeEditor?
Is there any solution? Thank you.
Daniel
Teemu Keiski ??:
> As it's complex type, property should be read-only
>
> ...
> public SQLSettings SQLSettingsData
> {
> get
> {
> if (this._sqlSettings == null)
> this._sqlSettings = new SQLSettings();
> return this._sqlSettings;
> }
>
> }
>
>
> --
> Teemu Keiski
> ASP.NET MVP, AspInsider
> Finland, EU
> [url]http://blogs.aspadvice.com/joteke[/url]
>
>
> <yp.yean@gmail.com> wrote in message
> news:1156393251.472673.191100@i3g2000cwc.googlegro ups.com...> > Hi,
> >
> > I created a custom control, and encountered a dirty property value
> > persistence problem.
> > I created a property with a custom class type, call SQLSettings which
> > holds the SQL connection parameters, the class as follows:
> >
> >
> > public sealed class SQLSettings
> > {
> > private string serverName;
> > .......
> >
> >
> > public SQLSettings()
> > {
> > this.serverName = string.Empty;
> > ......
> > }
> >
> >
> > [NotifyParentProperty(true)]
> > public string ServerName
> > {
> > get
> > {
> > return this.serverName;
> > }
> > set
> > {
> > this.serverName = value;
> > }
> > }
> > ..................
> >
> >
> > And, I also created an mapping TypeConverter and UITypeEditor classes
> > to handle the design-time founctinality. The property I created in my
> > conbtrol as follows:
> >
> >
> > [BrowsableAttribute(true)]
> > [CategoryAttribute("Behavior")]
> > [BindableAttribute(true)]
> > [NotifyParentProperty(true)]
> > [EditorAttribute(typeof(SQLSettingsUITypeEditor),
> > typeof(UITypeEditor))]
> >
> > [DesignerSerializationVisibility(DesignerSerializat ionVisibility.Content)]
> >
> > [TypeConverter((Type)typeof(SQLSettingsTypeConverte r))]
> > [PersistenceModeAttribute(PersistenceMode.InnerProp erty)]
> > public SQLSettings SQLSettingsData
> > {
> > get
> > {
> > return this._sqlSettings;
> > }
> > set
> > {
> > this._sqlSettings = value;
> > }
> > }
> >
> >
> > They all works fine when first set value to this property, I can see
> > the persisted data showed in .aspx file. When I go back to design view
> > and update the property value via my UITypeEditor, I can see the value
> > already updated in VS.NET properties browser. But when I turn to see
> > .aspx file in code view, I didn't see the dirty property value updated
> > in .aspx file. When I turn to design view, the updated property value
> > is lost, it remain keep the first persisted value.
> >
> >
> > How to solve this problem? Any idea?
> > Thank you for your kindly help.
> >
Teemu Keiski Guest



Reply With Quote

