protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments) { if (this.dataSourceControl.Enabled == true) { IOrderedDictionary parameters = this.dataSourceControl.DataParameters.GetValues(HttpContext.Current, this.dataSourceControl); DataEventArgs args = new DataEventArgs(this.dataSourceControl.PageSize, arguments.StartRowIndex, arguments.SortExpression, parameters); this.dataSourceControl.GetData(args); arguments.TotalRowCount = args.TotalRowCount; arguments.MaximumRows = this.dataSourceControl.PageSize; arguments.AddSupportedCapabilities(DataSourceCapabilities.Page | DataSourceCapabilities.Sort | DataSourceCapabilities.RetrieveTotalRowCount); arguments.RetrieveTotalRowCount = true; if (!(args.Data is ICollection)) { return (args.Data.OfType<Object>().ToList()); } else { return (args.Data); } } else { arguments.TotalRowCount = 0; return (new ArrayList()); } }
protected virtual void OnData(DataEventArgs args) { EventHandler<DataEventArgs> data = this.Data; if (data != null) { data(this, args); } }
internal void GetData(DataEventArgs args) { this.OnData(args); }