Retrieving Data From Dynamic Modules Not Working
Following the examples on this page:
I've but the following code into the InitializeControls method in my, Thunder generated, widget with designer:
1.protected override void InitializeControls(GenericContainer container)2.3. var dynamicModuleManager = DynamicModuleManager.GetManager();4. Type testimonialType = TypeResolutionService.ResolveType("Telerik.Sitefinity.DynamicTypes.Model.Testimonials.Testimonial");5. var testimonials = dynamicModuleManager.GetDataItems(testimonialType).Where(i => i.Status == Telerik.Sitefinity.GenericContent.Model.ContentLifecycleStatus.Live);6. dynamicContentListView.DataSource = testimonials;7. dynamicContentListView.DataBind();8.
But it yields no results, even though I have created two testimonials. The only thing that is majorily different than the examples is that it is a multisite configuration.
Am I missing something in this setup? Does it have to do with a multisite?
So you need to get the default provider for the current site and then use this provider when creating the DynamicModuleManager object.
1.// Make sure we are using the provider for the current site.2. var provider = Sumo.Sitefinity.Framework.Model.MultisiteHelper.GetCurrentSite().GetDefaultProvider("Testimonials");3. string providerName = null;4. 5. // the site doesn't have a default provider for 'Testimonials' so use the site provider.6.providerName = (provider != null) ? provider.ProviderName : DynamicModuleManager.GetDefaultProviderName(); ;7.DynamicModuleManager dynamicModuleManager = DynamicModuleManager.GetManager(providerName);Hi,
For DynamicModuleManager I am using this:
var provider = new MultisiteContext().CurrentSite.GetDefaultProvider("MODULE NAME");
Is there any way to get the module name using TypeResolutionService.ResolveType method? Module names can have spaces as well, so either we'll have to hard-code them in the code which is not a good practice at all. Or there must be some dynamic way for it.