Perhaps you know the Dragpanelextender from the AJAX Control toolkit ( March). This have the feature to store the position of a drag panel personalized in profile settings. That's a general functionality in the base class.
<ajaxToolkit:DragPanelExtender TargetControlID="Panel1"
DragHandleID="drgPanel"
BehaviorID="HannesDrag"
ID="DragPanelExtender1" runat="server">
<ProfileBindings>
<ajaxToolkit:ProfilePropertyBinding
ExtenderPropertyName="Location"
ProfilePropertyName="HannesPosition" />
</ProfileBindings>
</ajaxToolkit:DragPanelExtender>
I used that control in a sample for a while. In my last AJAX course the postion was not stored in aspnetdb. So sample breaks.
After a long search I figured out following facts:
in floatingbeavior.js code documented out
// var p = this.get_profileProperty();
// if(p) {
// var b = new Sys.Preview.Binding();
// b.beginUpdate();
// b.set_target(this);
// b.set_property("location");
// var profile = this.get_profileComponent();
// if(!profile) profile = Sys.Preview.Services.Components.Profile.instance;
// b.set_dataContext(profile);
// b.set_dataPath(p);
// b.set_direction(Sys.Preview.BindingDirection.InOut);
//
// // we must hook into the loaded event since the profile may be loaded and the location property
// // will be different. But profile doesnt raise a change notificaiton for every property after a load
// var a = new Sys.Preview.InvokeMethodAction();
// a.beginUpdate();
// a.set_eventSource(profile);
// a.set_eventName("loadComplete");
// a.set_target(b);
// a.set_method("evaluateIn");
// a.endUpdate();
// b.endUpdate();
// this._binding = b;
// this._action = a;
// }
}
In extendercontrolebase.cs compiler directive
#if false
/* TODO: Migrate */
internal IScriptService EnsureProfileScriptService(ScriptManager sm, bool checkIfNeeded)
{
...
and at the end in the Assembly with reflector
[PersistenceMode(PersistenceMode.InnerProperty), Obsolete("WARNING: ProfileBindings are disabled for this Toolkit release pending technical issues. We hope to re-enable this in an upcoming release"), DesignerSerializationVisibility(2), Browsable(false)]
public ProfilePropertyBindingCollection ProfileBindings
{
BAM!!!
Hey guys, some people are developing productive stuff with that and you drop a basic feature without any notice!
Microsoft: AJAX Toolkit must be under full control, support and development path of Microsoft. With that status I can not suggest to use Microsoft AJAX Control Extenders. It's to much risk!