Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > ASP .Net > ASP .Net Building Controls > Problem with EditableDesignerRegion and Set/Get methods ..

Reply
Thread Tools

Problem with EditableDesignerRegion and Set/Get methods ..

 
 
Micke Andersson
Guest
Posts: n/a
 
      07-31-2006
I have a slight problem with
SetEditableDesignerRegionContent(region,content) .. it keeps telling me that
I already have a control with the same ID when I try to update, thus failing
and somehow actually adding stuff twice ..

so what am I doing wrong? I have a custom control which contains a list of
other controls (TabControl and a list of Tabs), but I cannot use templates
since I want attributes on the Tabs themselves). It all works runtime - and
in the designer - but on and off when I do certain changes, I cannot persist
the EditableDesignerRegion contents due to contents apparently appearing
twice.

The designer is actually bound to the TabControl, but actually what I am
editing is the contents of the Tab - the TabControl selects what Tab is
active dynamically so I don't really know how to do it another way. I'm
pretty certain the problem is at or near the GetEditable...() and
SetEditable...() functions, so can anyone give me a hint on how to persist
Tab data from the designer correctly?

I tried looking at information about ControlParser and ControlPersister, but
there's not a lot out there that i can can find

EditableDesignerRegion is created from a <div> tag surrounding each tab
(generated by TabControl.Render()) and is filled with the designer mark
(__designer="0" in this case) when in design mode.

/Micke Andersson


public override string
GetEditableDesignerRegionContent(EditableDesignerR egion region) {
IDesignerHost host =
(IDesignerHost)Component.Site.GetService(typeof(ID esignerHost));
try {
if (host != null) {
Tab tab = _c.Tabs[region.Name];
string s = "";
foreach (Control cc in tab.Controls) {
s += ControlPersister.PersistControl(cc, host);
}
return s;
}
} catch (Exception ex) {
_(" EXCEPTION: " + ex.Message);
}
return "";
}

public override void SetEditableDesignerRegionContent(EditableDesignerR egion
region, string content) {
int currentstep = 0;
if (content == null)
return;
try {
IDesignerHost host =
(IDesignerHost)Component.Site.GetService(typeof(ID esignerHost));
if (host != null) {
Tab tab = _c.Tabs[region.Name];
tab.Controls.Clear();
Control[] c = ControlParser.ParseControls(host, content);
foreach (Control cc in c) {
tab.Controls.Add(cc);
}
}
} catch (Exception ex) {
_(" EXCEPTION: " + ex.Message);
}
}


 
Reply With Quote
 
 
 
 
Micke Andersson
Guest
Posts: n/a
 
      08-02-2006
Noone?

"Micke Andersson" wrote:

> I have a slight problem with
> SetEditableDesignerRegionContent(region,content) .. it keeps telling me that
> I already have a control with the same ID when I try to update, thus failing
> and somehow actually adding stuff twice ..


 
Reply With Quote
 
 
 
 
Alessandro Zifiglio
Guest
Posts: n/a
 
      08-02-2006
hi Micke, I dont know the structure of your code logic and what you are
doing exactly to get this problem. One of the things i have noticed when
using designer regions and editabledesignerregions is that if i emit the
call to base.SetViewFlags in the Initialize method of my designer class then
unique ids are not maintained.


/*
* The designer host calls Initialize to initialize the component
for design.
* The base implementation will throw an exception if the associated
* control does not implement the INamingContainer interface.
*/
public override void Initialize(IComponent component)
{
this._c = (Tab)component;
base.Initialize(component);
// Seems like without setting ViewFalgs for TemplateEditing then
// any control you add into the region does not maintain
// a unique id No idea why this is the case but it dont
bother me
// to add this simple one line.
base.SetViewFlags(ViewFlags.TemplateEditing, true);
}

if this did not fix your issue, then let me know and i'll try to put
together a small test control with tabs and designer regions /
editabledesignerregions working, to get you started.

Regards,
Alessandro Zifiglio
http://www.AsyncUI.net

"Micke Andersson" <> ha scritto nel
messaggio news:38D2DC9D-3C8E-4C2A-B2E3-...
> Noone?
>
> "Micke Andersson" wrote:
>
>> I have a slight problem with
>> SetEditableDesignerRegionContent(region,content) .. it keeps telling me
>> that
>> I already have a control with the same ID when I try to update, thus
>> failing
>> and somehow actually adding stuff twice ..

>



 
Reply With Quote
 
Micke Andersson
Guest
Posts: n/a
 
      08-02-2006
That actually appears to have fixed it. While I am not editing templates per
se, I understand the logic behind it, kinda. Maybe they should have called
that option something else - something more generic- if it just makes the
designer aware of the fact that there's actually other web code living around
it.

Oh, and write some help past the automatically generated stuff once you get
past looking for help about adding an onClick event

Thanks a lot for helping out,
/Micke

"Alessandro Zifiglio" wrote:

> hi Micke, I dont know the structure of your code logic and what you are
> doing exactly to get this problem. One of the things i have noticed when
> using designer regions and editabledesignerregions is that if i emit the
> call to base.SetViewFlags in the Initialize method of my designer class then
> unique ids are not maintained.


 
Reply With Quote
 
Alessandro Zifiglio
Guest
Posts: n/a
 
      08-03-2006
Your welcome, Micke. I agree that SetViewFlags is badly documented and named
=P

Regards,
Alessandro Zifiglio
http://www.AsyncUI.net

"Micke Andersson" <> ha scritto nel
messaggio news:6476AEC0-037E-4938-81A8-...
> That actually appears to have fixed it. While I am not editing templates
> per
> se, I understand the logic behind it, kinda. Maybe they should have called
> that option something else - something more generic- if it just makes the
> designer aware of the fact that there's actually other web code living
> around
> it.
>
> Oh, and write some help past the automatically generated stuff once you
> get
> past looking for help about adding an onClick event
>
> Thanks a lot for helping out,
> /Micke
>
> "Alessandro Zifiglio" wrote:
>
>> hi Micke, I dont know the structure of your code logic and what you are
>> doing exactly to get this problem. One of the things i have noticed when
>> using designer regions and editabledesignerregions is that if i emit the
>> call to base.SetViewFlags in the Initialize method of my designer class
>> then
>> unique ids are not maintained.

>



 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is there a way to find the class methods of a class, just like'methods' finds the instance methods? Kenneth McDonald Ruby 5 09-26-2008 03:09 PM
Template methods, declaration and Implementation in header file andoverloaded methods. anto.anish@gmail.com C++ 0 06-09-2008 08:43 PM
Adding controls to EditableDesignerRegion/ITemplate in code. Christophe Peillet ASP .Net Building Controls 7 04-10-2006 02:22 PM
difference between class methods and instance methods John M. Gabriele Python 18 02-18-2005 05:17 PM
Re: Templates and friends and template methods with private methods. Buster Copley C++ 5 07-07-2003 12:50 AM



Advertisments
 



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57