How to Get-Set Values to and from a Child Widget
Hi All, need some help with this scenario,
We created some widgets and everything was fine until bump into
the scenario where Widget "A" contains Widget "B"...
In run time (specifically in the ItemDataBound event) need to set some values to the Widget "B" Instance.
01.<asp:ListView ID="lvMostViewedItems" runat="server" DataSourceID="cdsMostViewedItems" >02.<ItemTemplate>03.<ul>04.<li>05. <div class="scItemOption">06. <scweb:ItemOptions ID="wucItemOption1" runat="server" />07. </div>08. </li>09. </ul>10.</ItemTemplate>11.</asp:ListView>1.void PagedControl_ItemDataBound(object sender, ListViewItemEventArgs e)2. 3. ItemOptions wucItemOptions = e.Item.FindControl("wucItemOption1") as ItemOptions;4. wucItemOptions.ItemNumber = Convert.ToDecimal(lblitemNo.Text);5. wucItemOptions.SmallAddToCartOption = true;6.01.System.InvalidOperationException was unhandled by user code02. Message=Invalid PathDefinition.03. Source=Telerik.Sitefinity04. StackTrace:05. at Telerik.Sitefinity.Abstractions.VirtualPath.EmbeddedResourceResolver.GetAssembly(PathDefinition definition)06. at Telerik.Sitefinity.Abstractions.VirtualPath.EmbeddedResourceResolver.Open(PathDefinition definition, String virtualPaht)07. at Telerik.Sitefinity.Abstractions.VirtualPath.PathDefinition.OpenFile(String virtualPath)08. at Telerik.Sitefinity.Abstractions.VirtualPath.VirtualPathManager.OpenFile(String virtualPath)09. at Telerik.Sitefinity.Abstractions.VirtualPath.ControlPresentationResolver.Open(PathDefinition definition, String virtualPath)10. at Telerik.Sitefinity.Abstractions.VirtualPath.PathDefinition.OpenFile(String virtualPath)11. at Telerik.Sitefinity.Abstractions.VirtualPath.VirtualPathManager.OpenFile(String virtualPath)12. at Telerik.Sitefinity.Abstractions.VirtualPath.SitefinityVirtualFile.Open()13. at System.Web.Hosting.VirtualPathProvider.OpenFile(String virtualPath)14. at System.Web.UI.TemplateParser.ParseFile(String physicalPath, VirtualPath virtualPath)15. at System.Web.UI.TemplateParser.ParseInternal()16. at System.Web.UI.TemplateParser.Parse()17. at System.Web.Compilation.BaseTemplateBuildProvider.get_CodeCompilerType()18. at System.Web.Compilation.BuildProvider.GetCompilerTypeFromBuildProvider(BuildProvider buildProvider)19. at System.Web.Compilation.BuildProvidersCompiler.ProcessBuildProviders()20. at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()21. at System.Web.Compilation.BuildManager.CompileWebFile(VirtualPath virtualPath)22. at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)23. at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)24. at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)25. at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)26. at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(String virtualPath, Type requiredBaseType)27. at Telerik.Sitefinity.Web.UI.ControlUtilities.LoadControl(String virtualPath, Page page)28. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.GetInstance(Page page)29. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.InstantiateIn(Control container, PlaceHoldersCollection placeHolders)30. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.InstantiateIn(Control container)31. at Telerik.Sitefinity.Web.UI.SimpleView.CreateContainer(ITemplate template)32. at Telerik.Sitefinity.Web.UI.SimpleView.get_Container()33. at Premier.SmarterCommerceModule.Web.UI.Public.ItemOptions.set_ItemNumber(Decimal value) in C:\SmarterCommerceSVN\4x\4.0.0.0\Trunk\Applications\SmarterCMS\SmarterCommerceModule\Web\UI\Public\ItemOptions.cs:line 39034. at ASP.sfctrlpresentation__sfct__369ab264bf820e8e1dd80eea75df7a98e227e32f_websitemostvieweditems_ascx.__BuildControlwucItemOption2() in http://server/SfCtrlPresentation/_SFCT_/369ab264bf820e8e1dd80eea75df7a98e227e32f/WebSiteMostViewedItems.ascx:line 6235. at ASP.sfctrlpresentation__sfct__369ab264bf820e8e1dd80eea75df7a98e227e32f_websitemostvieweditems_ascx.__BuildControlpnlWebSiteMostViewed() in http://server/SfCtrlPresentation/_SFCT_/369ab264bf820e8e1dd80eea75df7a98e227e32f/WebSiteMostViewedItems.ascx:line 436. at ASP.sfctrlpresentation__sfct__369ab264bf820e8e1dd80eea75df7a98e227e32f_websitemostvieweditems_ascx.__BuildControlTree(sfctrlpresentation__sfct__369ab264bf820e8e1dd80eea75df7a98e227e32f_websitemostvieweditems_ascx __ctrl) in http://server/SfCtrlPresentation/_SFCT_/369ab264bf820e8e1dd80eea75df7a98e227e32f/WebSiteMostViewedItems.ascx:line 137. at ASP.sfctrlpresentation__sfct__369ab264bf820e8e1dd80eea75df7a98e227e32f_websitemostvieweditems_ascx.FrameworkInitialize() in c:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\9d429797\1f1f0430\App_Web_websitemostvieweditems.ascx.915c3552.tl0fop92.0.cs:line 038. at System.Web.UI.UserControl.InitializeAsUserControlInternal()39. at System.Web.UI.UserControl.InitializeAsUserControl(Page page)40. at Telerik.Sitefinity.Web.UI.ControlUtilities.LoadControl(String virtualPath, Page page)41. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.GetInstance(Page page)42. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.InstantiateIn(Control container, PlaceHoldersCollection placeHolders)43. at Telerik.Sitefinity.Web.UI.VirtualPathTemplate.InstantiateIn(Control container)44. at Telerik.Sitefinity.Web.UI.SimpleView.CreateContainer(ITemplate template)45. at Telerik.Sitefinity.Web.UI.SimpleView.get_Container()46. at Premier.SmarterCommerceModule.Web.UI.Public.WebSiteMostViewedItems.get_PagerControl() in C:\SmarterCommerceSVN\4x\4.0.0.0\Trunk\Applications\SmarterCMS\SmarterCommerceModule\Web\UI\Public\WebSiteMostViewedItems.cs:line 3047. at Premier.SmarterCommerceModule.Web.UI.Public.WebSiteMostViewedItems.get_PageIndex() in C:\SmarterCommerceSVN\4x\4.0.0.0\Trunk\Applications\SmarterCMS\SmarterCommerceModule\Web\UI\Public\WebSiteMostViewedItems.cs:line 5048. at Premier.SmarterCommerceModule.Web.UI.Presenters.WebSiteMostViewedItemsPresenter.LoadViewFromModel() in C:\SmarterCommerceSVN\4x\4.0.0.0\Trunk\Applications\SmarterCMS\SmarterCommerceModule\Web\UI\Presenters\WebSiteMostViewedItemsPresenter.cs:line 3349. at Premier.SmarterCommerceModule.Web.UI.Public.WebSiteMostViewedItems.OnLoad(EventArgs e) in C:\SmarterCommerceSVN\4x\4.0.0.0\Trunk\Applications\SmarterCMS\SmarterCommerceModule\Web\UI\Public\WebSiteMostViewedItems.cs:line 10650. at System.Web.UI.Control.LoadRecursive()51. at System.Web.UI.Control.LoadRecursive()52. at System.Web.UI.Control.LoadRecursive()53. at System.Web.UI.Control.LoadRecursive()54. at System.Web.UI.Control.LoadRecursive()55. at System.Web.UI.Control.LoadRecursive()56. at System.Web.UI.Control.LoadRecursive()57. at System.Web.UI.Control.LoadRecursive()58. at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)59. InnerException:
Basically can a Custom Control contain a Custom Control ?
Need to do something different to register the second control ?
What I'm missing here... Virtual Paths maybe ?
In the Visual Studio Designer If I drop one of my custom control on another I receive the following error..
Error Rendering Control - Logout1An unhandled exception has occurred.Resolution of the dependency failed, type = "Telerik.Sitefinity.Configuration.ConfigManager", name = "XmlConfigProvider". Exception occurred while: Calling constructor Telerik.Sitefinity.Configuration.ConfigManager(System.String providerName). Exception is: ArgumentNullException - Value cannot be null. Parameter name: path1 ----------------------------------------------- At the time of the exception, the container was: Resolving Telerik.Sitefinity.Configuration.ConfigManager,XmlConfigProvider Calling constructor Telerik.Sitefinity.Configuration.ConfigManager(System.String providerName)
Ok forget about the VS error because anyway I found that "Templated ASP.NET user controls are not supported in the Visual Studio designer."...
But they should work in run time.. and my SimpleView Controls fails to properly set or get info from child SimpleView controls.