ASP.NET控件开发基础(21)

http://tech.ddvip.com   2007年09月02日    社区交流

内容摘要:既然2.0版本已经提供了数据源控件,你是否有想法,让你原有的控件也升级到同时支持通过设置DataSource属性和数据源控件来获取数据源,这样以后我们就可以省省工作了。这次我们就来讨论这个话题,让旧版本的数据绑定控件支持数据源控件。

  (2)上面几个属性涉及到几个方法

/// <summary>
/// 创建空的 DataSourceSelectArguments 对象
/// </summary>
/// <returns></returns>
protected virtual DataSourceSelectArguments CreateDataSourceSelectArguments()
{
  return DataSourceSelectArguments.Empty;
}
  
/// <summary>
/// 如果设置了 DataSourceID 属性且数据绑定控件标记为需要绑定,则调用 DataBind 方法
/// OnPreRender中调用
/// </summary>
protected void EnsureDataBound()
{
  if (RequiresDataBinding && (DataSourceID.Length > 0))
  {
    DataBind();
  }
}
  
/// <summary>
/// 在某一基数据源标识属性更改后,将数据绑定控件重新绑定到其数据
/// </summary>
protected virtual void OnDataPropertyChanged()
{
  if (initialized)
  {
    RequiresDataBinding = true;
  }
  currentViewValid = false;
}

  上面的几个属性和方法可以一起来看看了,在更改数据源标识时都会调用OnDataPropertyChanged方法,然后到了EnsureDataBound方法(此方法在OnPreRender方法中调用)在使用数据源控件情况下自动调用DataBind方法。另外Initialized属性会在控件初始化时设置.

  2.获取与数据绑定控件关联的IDataSource接口

  数据源控件实现了IDataSource接口,此接口定义了数据源最基本的元素,数据绑定控件要根据DataSourceID属性从容器中获取与其关联的IDataSource接口。如下实现

责编:豆豆技术应用

正在加载评论...