public abstract class DataBoundControl : BaseDataBoundControl
{
public virtual string DataMember { get; set; }
protected DataSourceSelectArguments SelectArguments { get; }
protected override void PerformSelect();
protected virtual void PerformDataBinding( IEnumerable data);
protected virtual DataSourceView GetData();
protected virtual IDataSource GetDataSource();
}
public sealed class DataSourceSelectArguments
{
public int StartRowIndex { get; set; }
public int MaximumRows { get; set; }
public string SortExpression { get; set; }
public bool RetrieveTotalRowCount { get; set; }
public int TotalRowCount { get; set; }
}
public interface IDataSource
{
event EventHandler DataSourceChanged;
DataSourceView GetView(string viewName);
ICollection GetViewNames();
}
protected override void OnPagePreLoad(object sender, EventArgs e)
{
base.OnPagePreLoad(sender, e);
if (this.Page != null)
{
if (!this.Page.IsPostBack)
{
base.RequiresDataBinding = true;
}
else if (base.IsViewStateEnabled && (this.ViewState["_!DataBound"] == null))
{
base.RequiresDataBinding = true;
}
}
this._pagePreLoadFired = true;
}