SaaS CMS has officially launched! Learn more now.

Custom Property Unable to save value

Vote:
 

We have couple of custom properties. During saving of a custom property we are getting following error:

Multiple controls with the same ID 'EditFormBody0' were found. FindControl requires that controls have unique IDs.

This property is adding a user control to a update panel and allows user to multi select child page of certain types. I did not find any issue with code. Any help will be appreciated.

 

Stacktrace:

[HttpException (0x80004005): Multiple controls with the same ID 'EditFormBody0' were found. FindControl requires that controls have unique IDs.] System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +273 System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +320 System.Web.UI.Control.FillNamedControlsTable(Control namingContainer, ControlCollection controls) +320 System.Web.UI.Control.EnsureNamedControlsTable() +61 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +222 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +255 System.Web.UI.Control.FindControl(String id) +12 EPiServer.UI.WebControls.TabStrip.FindTarget() +176 EPiServer.UI.WebControls.TabStrip.ActivateSelectedTab() +64 EPiServer.UI.WebControls.TabStrip.OnLoad(EventArgs e) +47 System.Web.UI.Control.LoadRecursive() +50 System.Web.UI.Control.LoadRecursive() +141 System.Web.UI.Control.AddedControl(Control control, Int32 index) +265 System.Web.UI.ControlCollection.Add(Control child) +80 EPiServer.UI.WebControls.PropertyDataForm.CreateChildControls() +1785 System.Web.UI.Control.EnsureChildControls() +87 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +23 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +327 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +327 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +327 System.Web.UI.Control.FindControl(String id, Int32 pathOffset) +327 System.Web.UI.Page.FindControl(String id) +38 System.Web.UI.Page.RegisterRequiresClearChildControlState(Control control) +326 System.Web.UI.Control.ClearChildControlState() +53 System.Web.UI.Control.ClearChildState() +12 EPiServer.UI.WebControls.PropertyDataForm.editPanel_SavedChanges(Object sender, EventArgs e) +189 System.EventHandler.Invoke(Object sender, EventArgs e) +0 EPiServer.UI.Edit.EditPanel.SavePage() +474 EPiServer.UI.Edit.EditPageButtonControl.Save(SaveAction saveAction, Boolean goToViewPage) +96 EPiServer.UI.Edit.EditPageButtonControl.SaveOnly_Click(Object sender, EventArgs e) +48 EPiServer.UI.WebControls.ToolButton.OnClick(EventArgs e) +141 EPiServer.UI.WebControls.ToolButton.RaisePostBackEvent(String eventArgument) +178 System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13 System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565

#45161
Nov 01, 2010 23:43
Vote:
 

I don't have an answer, but Google turned up this --

http://ndthangnb.blogspot.com/2010/04/systemwebhttpunhandledexception.html

-- which I suspect is a Web site of one of EPiServer's support staff (they're based out of Vietnam).  No clear resolution, but it looks like a known bug -- #27295 -- which is fixed and will ship in the next version.  I would open an official support incident to confirm.

#45162
Nov 02, 2010 2:47
Vote:
 

Hi,

Yes, this is a registered bug and it has been fixed for EPiServer CMS 6.

#45163
Nov 02, 2010 9:17
Vote:
 

Thanks for reply, I had read this earlier, but I am using Episerver 5.2 R2 and need some kind of work around or resolution.

May be re-defining/code property or handling / overriding any method might help. Can any one know details of the fix/where to fix.

I cannot upgrade solution as it is working for couple of years and no plan for upgrade. Need to deliver this for a very small enhancement.

Sanjay Zalke

#45174
Nov 02, 2010 10:28
Vote:
 

Thanks for reply, I had read this earlier, but I am using Episerver 5.2 R2 and need some kind of work around or resolution.

May be re-defining/code property or handling / overriding any method might help. Can any one know details of the fix/where to fix.

I cannot upgrade solution as it is working for couple of years and no plan for upgrade. Need to deliver this for a very small enhancement.

Sanjay Zalke

#45175
Nov 02, 2010 10:28
Vote:
 

Sorry for posting twice earlier, so the core issue is with Gridview and custom property. So if I use repeater or some other control then I should be able to save the value? If this is the case which control is best or not have issues with custom property?

 

Sanjay Zalke

#45176
Nov 02, 2010 10:38
Vote:
 

Hi,

It seems you cannot fix it yourself. This change was made in the file EPiServer.UI.WebControls.PropertyDataForm.cs

/// <summary>
/// Load and translate tab headers.
/// </summary>
private void LoadTabHeaders()
{
    _tabs.Clear(); //added
    _tabs.AddRange(TabDefinition.List());
}

Where _tabs is a TabDefinitionCollection. You need a way to access that variable and call Clear(). But I don't think it's possible.
But I think the bug only relates to the specific control, ListView.

#45177
Nov 02, 2010 10:42
Vote:
 

Thanks for reply, I found the work around. I use repeater in place of grid view. We had parent child controls, so I had to change on both controls. The great thing is with minimal changes this is working now.

Thanks for helping guys, keep the great work.

Sanjay Zalke

#45178
Nov 02, 2010 11:22
This topic was created over six months ago and has been resolved. If you have a similar question, please create a new topic and refer to this one.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.