New to Telerik UI for ASP.NET AJAX? Start a free 30-day trial

ASP.NET AJAX spreadsheet control that delivers Excel-like editing, formatting, formulas, data binding and export. This partial class focuses on: creating child UI elements (toolbar, context menus, filter, custom format, validation and hyperlink dialogs), orchestrating server data binding through a pluggable SpreadsheetProviderBase implementation, serializing sheet and localization data for the client script descriptor, and handling callback persistence of a Workbook instance.

Responsibilities in this partial:

  1. Child control lifecycle – helper factory methods build the internal dialog containers and menus on demand.
  2. Data binding – tracks when data related properties change and rebinds sheets through Provider / SpreadsheetProviderBase.
  3. Client initialization – injects sheet data, localization and context menu IDs into the script descriptor for semantic client-side startup.
  4. Localization – emits culture script when a non "en-US" culture is used.
  5. Callback saving – implements ICallbackEventHandler so the client can persist workbook changes without full postback.

Definition

Namespace:Telerik.Web.UI

Assembly:Telerik.Web.UI.dll

Syntax:

C#
[EmbeddedSkin("Spreadsheet", typeof(RadSpreadsheet))]
[EmbeddedSkin("Spreadsheet", "Default", typeof(RadSpreadsheet))]
[RequiredCss("Telerik.Web.UI.Skins.Common.common.css", RenderMode.Lightweight, typeof(RadSpreadsheet))]
[RequiredCss("Telerik.Web.UI.Skins.Common.fonticons.css", RenderMode.Lightweight, typeof(RadSpreadsheet))]
[RequiredCss("Telerik.Web.UI.Skins.Common.MaterialRipple.css", RenderMode.Lightweight, typeof(RadButton))]
[RequiredScript(typeof(jQueryPlugins), 1)]
[RequiredScript(typeof(ModalExtender), 2)]
[RequiredScript(typeof(Html5Menu), 3)]
[RequiredScript(typeof(Html5Spreadsheet), 4)]
[RequiredScript(typeof(MaterialRipple))]
[ClientScriptResource("Telerik.Web.UI.RadSpreadsheet", "Telerik.Web.UI.Spreadsheet.RadSpreadsheetScripts.js", LoadOrder = 5)]
[TelerikToolboxCategory("Data")]
[ToolboxBitmap(typeof(RadSpreadsheet), "Toolbox.Icons.Spreadsheet.png")]
[CLSCompliant(false)]
public class RadSpreadsheet : RadDataBoundControl, IComponent, IDisposable, IParserAccessor, IUrlResolutionService, IDataBindingsAccessor, IControlBuilderAccessor, IControlDesignerAccessor, IExpressionsAccessor, IAttributeAccessor, IScriptControl, IControlResolver, IPostBackDataHandler, ISkinnableControl, IControl, IFeatureGroup, ISpreadsheet, INamingContainer, ICallbackEventHandler

Inheritance: objectControlWebControlBaseDataBoundControlDataBoundControlRadDataBoundControlRadSpreadsheet...

Implements: IAttributeAccessorICallbackEventHandlerIComponentIControlIControlBuilderAccessorIControlDesignerAccessorIControlResolverIDataBindingsAccessorIDisposableIExpressionsAccessorIFeatureGroupINamingContainerIParserAccessorIPostBackDataHandlerIScriptControlISkinnableControlISpreadsheetIUrlResolutionService...

Inherited Members DataBoundControl.OnCreatingModelDataSource(CreatingModelDataSourceEventArgs)DataBoundControl.CreateDataSourceSelectArguments()DataBoundControl.GetData()DataBoundControl.GetDataSource()DataBoundControl.MarkAsDataBound()DataBoundControl.OnDataSourceViewChanged(object, EventArgs)DataBoundControl.OnLoad(EventArgs)DataBoundControl.OnPagePreLoad(object, EventArgs)DataBoundControl.PerformDataBinding(IEnumerable)DataBoundControl.ValidateDataSource(object)DataBoundControl.LoadViewState(object)DataBoundControl.SaveViewState()DataBoundControl.TrackViewState()DataBoundControl.DataMemberDataBoundControl.IsUsingModelBindersDataBoundControl.ItemTypeDataBoundControl.SelectMethodDataBoundControl.DataSourceIDDataBoundControl.DataSourceObjectDataBoundControl.SelectArgumentsDataBoundControl.CreatingModelDataSourceDataBoundControl.CallingDataMethodsBaseDataBoundControl.ConfirmInitState()BaseDataBoundControl.DataBind()BaseDataBoundControl.OnDataBound(EventArgs)BaseDataBoundControl.OnInit(EventArgs)BaseDataBoundControl.DataSourceBaseDataBoundControl.InitializedBaseDataBoundControl.IsBoundUsingDataSourceIDBaseDataBoundControl.IsDataBindingAutomaticBaseDataBoundControl.SupportsDisabledAttributeBaseDataBoundControl.RequiresDataBindingBaseDataBoundControl.DataBoundWebControl.AddAttributesToRender(HtmlTextWriter)WebControl.ApplyStyle(Style)WebControl.CopyBaseAttributes(WebControl)WebControl.CreateControlStyle()WebControl.MergeStyle(Style)WebControl.RenderBeginTag(HtmlTextWriter)WebControl.RenderEndTag(HtmlTextWriter)WebControl.RenderContents(HtmlTextWriter)WebControl.AccessKeyWebControl.AttributesWebControl.BackColorWebControl.BorderColorWebControl.BorderWidthWebControl.BorderStyleWebControl.ControlStyleWebControl.ControlStyleCreatedWebControl.CssClassWebControl.DisabledCssClassWebControl.StyleWebControl.EnabledWebControl.EnableThemingWebControl.FontWebControl.ForeColorWebControl.HasAttributesWebControl.HeightWebControl.IsEnabledWebControl.SkinIDWebControl.TabIndexWebControl.TagNameWebControl.ToolTipWebControl.WidthControl.ResolveAdapter()Control.HasEvents()Control.GetRouteUrl(object)Control.GetRouteUrl(string, object)Control.GetRouteUrl(RouteValueDictionary)Control.GetRouteUrl(string, RouteValueDictionary)Control.GetUniqueIDRelativeTo(Control)Control.ApplyStyleSheetSkin(Page)Control.OnDataBinding(EventArgs)Control.DataBind(bool)Control.DataBindChildren()Control.AddParsedSubObject(object)Control.EnsureID()Control.ClearChildState()Control.ClearChildControlState()Control.ClearChildViewState()Control.ClearEffectiveClientIDMode()Control.ClearCachedClientID()Control.Focus()Control.LoadControlState(object)Control.MapPathSecure(string)Control.OpenFile(string)Control.BuildProfileTree(string, bool)Control.SaveControlState()Control.RenderChildren(HtmlTextWriter)Control.RenderControl(HtmlTextWriter)Control.RenderControl(HtmlTextWriter, ControlAdapter)Control.OnUnload(EventArgs)Control.Dispose()Control.RaiseBubbleEvent(object, EventArgs)Control.OnBubbleEvent(object, EventArgs)Control.AddedControl(Control, int)Control.CreateControlCollection()Control.ResolveUrl(string)Control.ResolveClientUrl(string)Control.FindControl(string)Control.FindControl(string, int)Control.GetDesignModeState()Control.HasControls()Control.IsLiteralContent()Control.EnsureChildControls()Control.RemovedControl(Control)Control.SetDesignModeState(IDictionary)Control.SetRenderMethodDelegate(RenderMethod)Control.ClientIDModeControl.ClientIDControl.ClientIDSeparatorControl.ContextControl.AdapterControl.DesignModeControl.EventsControl.IDControl.IsChildControlStateClearedControl.EnableViewStateControl.ViewStateModeControl.IsViewStateEnabledControl.NamingContainerControl.IdSeparatorControl.LoadViewStateByIDControl.PageControl.RenderingCompatibilityControl.TemplateControlControl.ParentControl.TemplateSourceDirectoryControl.AppRelativeTemplateSourceDirectoryControl.SiteControl.VisibleControl.UniqueIDControl.HasChildViewStateControl.ControlsControl.ValidateRequestModeControl.ViewStateControl.ViewStateIgnoresCaseControl.ChildControlsCreatedControl.IsTrackingViewStateControl.DisposedControl.DataBindingControl.InitControl.LoadControl.PreRenderControl.Unloadobject.ToString()object.Equals(object)object.Equals(object, object)object.ReferenceEquals(object, object)object.GetHashCode()object.GetType()object.MemberwiseClone()...

Constructors

C#
public RadSpreadsheet()

Properties

C#
[Browsable(false)]
public virtual ISpreadsheetAdapterFactory AdapterFactory { get; set; }

Gets or sets a value indicating the height of the column headers.

C#
[ClientControlProperty]
[ClientPropertyName("columnHeaderHeight")]
public double ColumnHeaderHeight { get; set; }

Gets or sets a value indicating the number of columns.

C#
[ClientControlProperty]
[ClientPropertyName("columnsCount")]
public int ColumnsCount { get; set; }

Gets or sets a value indicating the width of the columns.

C#
[ClientControlProperty]
[ClientPropertyName("columnWidth")]
public double ColumnWidth { get; set; }

Gets a collection of context menus that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public SpreadsheetContextMenus ContextMenus { get; }

The CssClass property will now be used instead of the former Skin and will be modified in AddAttributesToRender()

C#
protected override string CssClassFormatString { get; }

Overrides: RadDataBoundControl.CssClassFormatString

Example:
C#
protected override string CssClassFormatString
{
       get
       {
           return "RadDock RadDock_{0} rdWTitle rdWFooter";
       }
}

Gets or sets the selected culture. Localization strings will be loaded based on this value.

C#
public CultureInfo Culture { get; set; }
Property Value:

The culture.

Implements: ISpreadsheet.Culture

Gets the template for the custom format dialog that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate CustomFormatTemplate { get; set; }

Gets the template for the filter menu that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate FilterMenuTemplate { get; set; }

Gets the template for the hyperlink dialog that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate HyperlinkTemplate { get; set; }

Gets the localization.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public SpreadsheetStrings Localization { get; }
Property Value:

The localization.

Implements: ISpreadsheet.Localization

Gets or sets a value indicating where RadSpreadsheet will look for its .resx localization files.

C#
public string LocalizationPath { get; set; }
Property Value:

The localization path.

Gets or sets the OnClientChange.

C#
[ClientControlEvent]
[ClientPropertyName("change")]
public string OnClientChange { get; set; }
Property Value:

The OnClientChange.

Gets or sets the OnClientChangeFormat.

C#
[ClientControlEvent]
[ClientPropertyName("changeFormat")]
public string OnClientChangeFormat { get; set; }
Property Value:

The OnClientChangeFormat.

Gets or sets the OnClientChanging.

C#
[ClientControlEvent]
[ClientPropertyName("changing")]
public string OnClientChanging { get; set; }
Property Value:

The OnClientChanging.

Gets or sets the OnClientCopy.

C#
[ClientControlEvent]
[ClientPropertyName("copy")]
public string OnClientCopy { get; set; }
Property Value:

The OnClientCopy.

Gets or sets the OnClientCut.

C#
[ClientControlEvent]
[ClientPropertyName("cut")]
public string OnClientCut { get; set; }
Property Value:

The OnClientCut.

Gets or sets the OnClientDeleteColumn.

C#
[ClientControlEvent]
[ClientPropertyName("deleteColumn")]
public string OnClientDeleteColumn { get; set; }
Property Value:

The OnClientDeleteColumn.

Gets or sets the OnClientDeleteRow.

C#
[ClientControlEvent]
[ClientPropertyName("deleteRow")]
public string OnClientDeleteRow { get; set; }
Property Value:

The OnClientDeleteRow.

Gets or sets the OnClientExcelExport.

C#
[ClientControlEvent]
[ClientPropertyName("excelExport")]
public string OnClientExcelExport { get; set; }
Property Value:

The OnClientExcelExport.

Gets or sets the OnClientExcelImport.

C#
[ClientControlEvent]
[ClientPropertyName("excelImport")]
public string OnClientExcelImport { get; set; }
Property Value:

The OnClientExcelImport.

Gets or sets the OnClientHideColumn.

C#
[ClientControlEvent]
[ClientPropertyName("hideColumn")]
public string OnClientHideColumn { get; set; }
Property Value:

The OnClientHideColumn.

Gets or sets the OnClientHideRow.

C#
[ClientControlEvent]
[ClientPropertyName("hideRow")]
public string OnClientHideRow { get; set; }
Property Value:

The OnClientHideRow.

Gets or sets the OnClientInsertColumn.

C#
[ClientControlEvent]
[ClientPropertyName("insertColumn")]
public string OnClientInsertColumn { get; set; }
Property Value:

The OnClientInsertColumn.

Gets or sets the OnClientInsertRow.

C#
[ClientControlEvent]
[ClientPropertyName("insertRow")]
public string OnClientInsertRow { get; set; }
Property Value:

The OnClientInsertRow.

Gets or sets the OnClientInsertSheet.

C#
[ClientControlEvent]
[ClientPropertyName("insertSheet")]
public string OnClientInsertSheet { get; set; }
Property Value:

The OnClientInsertSheet.

Gets or sets the OnClientPaste.

C#
[ClientControlEvent]
[ClientPropertyName("paste")]
public string OnClientPaste { get; set; }
Property Value:

The OnClientPaste.

Gets or sets the OnClientPdfExport.

C#
[ClientControlEvent]
[ClientPropertyName("pdfExport")]
public string OnClientPdfExport { get; set; }
Property Value:

The OnClientPdfExport.

Gets or sets the OnClientRemoveSheet.

C#
[ClientControlEvent]
[ClientPropertyName("removeSheet")]
public string OnClientRemoveSheet { get; set; }
Property Value:

The OnClientRemoveSheet.

Gets or sets the OnClientRenameSheet.

C#
[ClientControlEvent]
[ClientPropertyName("renameSheet")]
public string OnClientRenameSheet { get; set; }
Property Value:

The OnClientRenameSheet.

Gets or sets the OnClientRender.

C#
[ClientControlEvent]
[ClientPropertyName("render")]
public string OnClientRender { get; set; }
Property Value:

The OnClientRender.

Gets or sets the OnClientSelect.

C#
[ClientControlEvent]
[ClientPropertyName("select")]
public string OnClientSelect { get; set; }
Property Value:

The OnClientSelect.

Gets or sets the OnClientSelectSheet.

C#
[ClientControlEvent]
[ClientPropertyName("selectSheet")]
public string OnClientSelectSheet { get; set; }
Property Value:

The OnClientSelectSheet.

Gets or sets the OnClientUnhideColumn.

C#
[ClientControlEvent]
[ClientPropertyName("unhideColumn")]
public string OnClientUnhideColumn { get; set; }
Property Value:

The OnClientUnhideColumn.

Gets or sets the OnClientUnhideRow.

C#
[ClientControlEvent]
[ClientPropertyName("unhideRow")]
public string OnClientUnhideRow { get; set; }
Property Value:

The OnClientUnhideRow.

Gets or sets the provider instance to be used by Spreadsheet. Use this property with providers that are created at runtime. For ASP.NET providers defined in web.config use the ProviderName property.

C#
[Browsable(false)]
public SpreadsheetProviderBase Provider { get; set; }
Property Value:

The provider instance to be used by Spreadsheet.

Gets or sets the name of the current tasks provider used by Spreadsheet. The provider must be defined in the Spreadsheet section of web.config.

C#
[PersistenceMode(PersistenceMode.Attribute)]
public string ProviderName { get; set; }
Property Value:

The name of the current tasks provider used by Spreadsheet as defined in web.config.

Gets the resolved render mode.

C#
public override RenderMode ResolvedRenderMode { get; }
Property Value:

The resolved render mode.

Overrides: RadDataBoundControl.ResolvedRenderMode

Implements: ISpreadsheet.ResolvedRenderMode

Gets the real skin name for the control user interface. If Skin is not set, returns "Default", otherwise returns Skin.

C#
public string ResolvedSkin { get; }

Implements: ISpreadsheet.ResolvedSkin

Gets or sets a value indicating the width of the row headers.

C#
[ClientControlProperty]
[ClientPropertyName("rowHeaderWidth")]
public double RowHeaderWidth { get; set; }

Gets or sets a value indicating the height of the rows.

C#
[ClientControlProperty]
[ClientPropertyName("rowHeight")]
public double RowHeight { get; set; }

Gets or sets a value indicating the number of rows.

C#
[ClientControlProperty]
[ClientPropertyName("rowsCount")]
public int RowsCount { get; set; }
C#
protected JavaScriptSerializer Serializer { get; }

Sheets

List<Worksheet>

C#
[Browsable(false)]
public virtual List<Worksheet> Sheets { get; }

Implements: ISpreadsheet.Sheets

C#
protected override bool SupportsRenderingMode { get; }

Overrides: RadDataBoundControl.SupportsRenderingMode

C#
protected override HtmlTextWriterTag TagKey { get; }

Overrides: WebControl.TagKey

Gets a toolbar with a collection of tools that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public SpreadsheetToolbar Toolbar { get; }

Gets the template for the validation dialog that will be shown in the Spreadsheet.

C#
[PersistenceMode(PersistenceMode.InnerProperty)]
public ITemplate ValidationTemplate { get; set; }

Methods

C#
protected virtual void BindSheets(List<Worksheet> sheets)
Parameters:sheetsList<Worksheet>
C#
protected override void CreateChildControls()

Overrides: Control.CreateChildControls()

C#
protected virtual void CreateContextMenus()
C#
protected override void DescribeComponent(IScriptDescriptor descriptor)
Parameters:descriptorIScriptDescriptor

Overrides: RadDataBoundControl.DescribeComponent(IScriptDescriptor)

C#
protected override void EnsureDataBound()

Overrides: BaseDataBoundControl.EnsureDataBound()

Returns a fixed OK string to acknowledge a completed callback. Client scripts can use this to verify success.

C#
public string GetCallbackResult()
Returns:

string

Implements: ICallbackEventHandler.GetCallbackResult()

C#
protected virtual void LoadAdapterFactory()
C#
protected virtual void LoadProvider()
C#
protected override void OnDataPropertyChanged()

Overrides: DataBoundControl.OnDataPropertyChanged()

C#
protected override void OnPreRender(EventArgs e)
Parameters:eEventArgs

Overrides: RadDataBoundControl.OnPreRender(EventArgs)

C#
protected override void PerformSelect()

Overrides: DataBoundControl.PerformSelect()

C#
public void RaiseCallbackEvent(string eventArgument)
Parameters:eventArgumentstring

Implements: ICallbackEventHandler.RaiseCallbackEvent(string)

C#
protected override void Render(HtmlTextWriter writer)
Parameters:writerHtmlTextWriter

Overrides: RadDataBoundControl.Render(HtmlTextWriter)