When you add a user control to a form, you should use the Sub-View control and set the VirtualPath property to the user control ASCX file.
Procedure
- Create a user control.
- Sign the user control project.
- Set the Inherits property of the user control to the full class name.
Inherits="WebApplication1.WebUserControl1 ,WebApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=4b06ea5bb276e861" - Put the user's control assembly in the GAC.
- Put the ASCX file in the Cora SeQuence shared resources folder.
- On the form, add a Sub-View control, and in the markup, set the VirtualPath property.
Get the Cora SeQuence Form Control (hosting the user control)
private FormControl GetFormControl()
{
Control control = this.Parent;
FormControl sequenceForm = null;
while (control != null)
{
sequenceForm = control as FormControl;
if (sequenceForm != null)
{
break;
}
control = control.TemplateControl;
//the TemplateControl property for a user control returns itself or null
if (control != null)
{
control = control.Parent;
}
}
return sequenceForm;
}Add the Save Data Function
private void SaveData(List<string> values)
{
FormControl sequenceForm = GetFormControl();
if (sequenceForm != null)
{
var viewModel = this.GetFormUIViewModel();
if (viewModel != null)
{
DataModel dataModel = ((IDataModelAccessor)sequenceForm).DataModel;
DataContext ctx = viewModel.DataContextManager.GetDataContext(dataModel);
IDataTable logTable = ctx.GetDataTable("TableQueryName");
IDataRow logRow;
foreach (string s in values)
{
logRow = logTable.CreateRow();
//add the rest of the fields here
//logRow.SetField("[field name]", [value]);
logRow.SetField("myString", s);
logTable.InsertOnSubmit(logRow);
}
try
{
ctx.SubmitChanges();
}
catch (Exception ex)
{
DiagnosticUtility.EventLog.LogError("Error submiting the data.\n" + ex.ToString());
throw;
}
}
}
}Add the Event that Triggers the Save Method
protected void Button1_Click(object sender, EventArgs e)
{
List<string> l = new List<string>();
l.Add("a");
l.Add("b");
SaveData(l);
}