End Google Ads 201810 - BS.net 01 --> Dear Expert I have usercontrol to create a new record/edit an existing record. The usercontrol have two constructors. one for "Create new record " and other for Load existing record for edit. When page have id in query string then load existing record for edit constructor execute otherwise create new rocord constructor executes.
The following is the code behind of usercontrol ("ContractControl")


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DynamicForms.Portal.Controls
{
public partial class ContractControl : System.Web.UI.UserControl, IContract
{
protected bool _createMode;

public ContractControl()
{
_createMode = true;
this.Save += new EventHandler(ContractControl_Save);
this.Cancel += new EventHandler(ContractControl_Cancel);
}

public ContractControl(IContract contract)
{
_createMode = false;
this.Save += new EventHandler(ContractControl_Save);
this.Cancel += new EventHandler(ContractControl_Cancel);
ID = contract.ID;
Client_ID = contract.Client_ID;
Name = contract.Name;



}
protected void Page_Load(object sender, EventArgs e)
{

}

#region IContract Members
public Guid ID
{
get
{

return Guid.NewGuid();

}
set
{

ID = value;

}
}
public string Name
{
get
{

return NameTextBox.Text;

}
set
{
try
{

NameTextBox.Text = value;
}
catch
{
}

}
}
#region Public Events

public event EventHandler Save;
public event EventHandler Cancel;

#endregion
#region Default Public Event handelrs

protected void ContractControl_Save(object sender, EventArgs e)
{
//Do Nothing
}
protected void ContractControl_Cancel(object sender, EventArgs e)
{
//Do Nothing
}
#endregion
protected void SaveButton_Click(object sender, EventArgs e)
{
Save(this, e);
}
protected void CancelButton_Click(object sender, EventArgs e)
{
Cancel(this, e);
}
}

Following code execute on pageload of my webpage where I used above usercontrol

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{

if (Request.Params["id"] != null && Request.Params["id"].Length > 0)
{

Controllers.ContractController _controller=new Controllers.ContractController();
Controls.IContract _contract= _controller.Load(new Guid(Request["id"].ToString()));
ContractControl1 = new Controls.ContractControl(_contract);



}
else
{

ContractControl1 = new DynamicForms.Portal.Controls.ContractControl();



}
}

}
The new record is being created successfully. But editing throws following error
"An unhandled exception of type 'System.StackOverflowException' occurred in MyProject.web.DLL"
I am waiting your suggestions please.