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);
		}