AdvantageCMS.Core.Common.BaseClasses Namespace
Build With Advantage

ToolControl<(Of <(<'T>)>)> Class

Generic base class for individual CRUD tool controls that manage a specific BusinessObject<(Of <(<'T>)>)>. Handles object loading, saving, versioning, publishing, draft management, locking, and toolbar state. Override LoadDataFromObject(ActionArgs) and SaveDataToObject()()()() in derived classes. Implements the ToolControlBase

Namespace:  AdvantageCMS.Core.Admin.BaseClasses
Assembly:  AdvantageCMS.Core (in AdvantageCMS.Core.dll)

Syntax


[SerializableAttribute]
public abstract class ToolControl<T> : ToolControlBaseControl
where T : BusinessObject<T>

Type Parameters

T
The concrete business object type managed by this tool control.

Examples


The following example shows how to create a CRUD tool control for a Product business object. Override LoadDataFromObject(ActionArgs) to populate form fields from the object, and SaveDataToObject()()()() to read form field values back into the object.
C#
public class ProductControl : ToolControl<Product>
{
    protected RadTextBox txtName;
    protected RadTextBox txtDescription;
    protected RadNumericTextBox txtPrice;
    protected RadDropDownList ddlCategory;

    protected override void LoadDataFromObject(ActionArgs e)
    {
        txtName.Text = MyObject.Name;
        txtDescription.Text = MyObject.Description;
        txtPrice.Value = (double?)MyObject.Price;
        var item = ddlCategory.Items.FirstOrDefault(i => i.Value == MyObject.CategoryId);
        if (item != null) ddlCategory.SelectedIndex = ddlCategory.Items.IndexOf(item);
    }

    protected override void SaveDataToObject()
    {
        MyObject.Name = txtName.Text;
        MyObject.Description = txtDescription.Text;
        MyObject.Price = (decimal)(txtPrice.Value ?? 0);
        MyObject.CategoryId = ddlCategory.SelectedValue;
    }
}

Inheritance Hierarchy


Object
  Control
    TemplateControl
      UserControl
        AdvantageCMS.Core.Admin.BaseClasses..::..CMSBaseUserControl
          AdvantageCMS.Core.Admin.BaseClasses..::..ActionControlBase
            ToolControlBase
              AdvantageCMS.Core.Admin.BaseClasses..::..ToolControlBaseControl
                AdvantageCMS.Core.Admin.BaseClasses..::..ToolControl<(Of <(<'T>)>)>