Dynamic Content wont render

 

Hi. I´m trying to get my first Dynamic Content to work. The problem is it wont render, the yellow box is still there after saving and publishing.

When I debug it seems like the GetControl method never gets called and the State property get/set-methods gets called several times.

Can anyone point me in the right direction?

DynamicHeadline.cs (The dynamic content class)
http://paste2.org/p/109209

DynamicHeadlineSettings.ascx.cs (The settings set in edit mode)
http://paste2.org/p/109210

DynamicHeadlineControl.ascx.cs
http://paste2.org/p/109212

Thank you!

#26289
Dec 01, 2008 14:51
Anders Hattestad
Member since: 1996
 

hi

what do

public string Text { get; set; }

public string Template { get; set; }

do?

#26292
Edited, Dec 01, 2008 17:10
Anders Hattestad
Member since: 1996
 

Hi again

I guess that you dont update the value of the dynamic content class based on what Text and Template is. Therfore when you save you save the empy Value and not the combined value of Text and Template.

#26293
Dec 01, 2008 17:15
Anders Hattestad
Member since: 1996
 
#26300
Dec 01, 2008 21:47
Per Hemmingson
Member since: 2006
 
Espen Limi
Member since: 2007
 

Did you figure out what the problem was?

I'm stuck in the same situation, the dynamicproperty renders with control in my develompment enviroment, but as soon as i move it to test it stops.. It runs the constructor and state over and over again, and once in a while it checks the rendering method.. but it never runs the GetControl method. 

 Update: 

I figured out what the problem was (in my case). 

I had a custom rendering of propertylongstring's.. and that screwed up the rendering of the dynamic content.. Once this was disabled it all worked like a charm. 

I used steves howto (http://labs.episerver.com/en/Blogs/Steve-Celius/Dates/112266/2/Taking-Control-of-Property-Rendering/ ) and registered the new propertydatacontroladapter in adaptermappings.browser (instead of global.asax.cs). 

Is there any nifty way of checking wether or not a  property contains dynamic content?

#28050
Edited, Feb 18, 2009 14:04
Anders Hattestad
Member since: 1996
 

yes :),

if its extends PropertyXhtmlString and one of the items in StringFragments is DynamicContentFragment then it contains a dynamic content control

check out http://labs.episerver.com/en/Blogs/Anders-Hattestad/Dates/2008/11/Please-devs-you-are-making-a-framework-dont-use-privateinternal/

 

#28076
Feb 18, 2009 23:25
Espen Limi
Member since: 2007
 
Great, thanks:)
#28077
Feb 19, 2009 8:17
Espen Limi
Member since: 2007
 

I still want to override the rendering of propertystrings, and this is how i solved it.

Instead of creating a new panel that stores all the controls for the property i just add my controls directly into the parents controlcollection, and thus getting rid of the initial div for each property. 

Here's the code from my implementation of the propertycontroladapter.

public override void CreateDefaultControls()
{

ControlCollection target = base.Control.Controls;
PropertyXhtmlString propertyData = base.PropertyData as PropertyXhtmlString;
if (propertyData != null)
{
foreach (IStringFragment fragment in propertyData.StringFragments)
{
target.Add(fragment.GetControl((PageBase)this.Page));
}
}
else
{
Literal child = new Literal();
child.Text = this.ToWebString();
target.Add(child);
}

}

 

 

#28082
Feb 19, 2009 10:27
Lise Engmo Eggum
Member since: 2007
 

Hi!

I also have this problem. My dynamic content won't render, it only displays that yellow box. The constructor and state is run several times, but GetControl is never called. RendersWithControl returns true.

I tested the DynamicPageProperty that is included in the basic episerver site, and that one also just renders that yellow box. So I get the feeling my site is missing something basic to enable rendering of dynamic content....

I do not override rendering of propertystrings so the solution Espen Limi gave doesn't do anything for me.

Anyone know what might be wrong?

#29532
May 04, 2009 8:37
Anders Hattestad
Member since: 1996
 

Could it be that you display the property like <%=CurrentPage.Property["MainBody"]%>

 sorry, had to ask :)

#29534
May 04, 2009 10:06
Lise Engmo Eggum
Member since: 2007
 

<EPiServer:Property PropertyName="MainContent" runat="server" />

:)

#29536
May 04, 2009 10:32
Anders Hattestad
Member since: 1996
 
and the MainContent is of propertyxhtmlstring?
#29540
May 04, 2009 12:38
Lise Engmo Eggum
Member since: 2007
 
Ah no, it was a regular longstring property :) While the dynamic content is available there too, I didn't even think about it. Thanks!
#29550
May 04, 2009 14:52
Per Gunsarfs
Member since: 2005
 

Hi

Nice catch, this is an oversight on our side. The tool shouldn't be avaliable on a property that can't use the result :)

I'll register it as an issue and our triage will take a look at it. Although this could be something that's very hard to fix, due to the way the editor works.

Regards

Per Gunsarfs
EPiServer CMS development team

#29558
May 05, 2009 10:26
 

Thanks guys, your suggestions helped me solved my problem.

Cheers

 

#35714
Edited, Dec 22, 2009 2:20