asp.net控件开发基础(22)
2008-12-19 17:14
555 查看
[b]示例代码
[/b]
上两篇讨论了如何定义结合数据源控件的数据绑定控件.这次我们一起来看下数据源控件是如何实现的。asp.net2.0已经为我们提供了很多数据源控件,相信大家都用过了,也希望大家对其有所熟悉.关于它能做什么就不说了。下面我们也一起来看看,如何简单的实现.
一.你必须了解的
1.关于数据源控件(DataSourceControl)
虽然表面看来,给数据绑定控件指定DataSourceID属性,数据源控件帮你做了一切工作,其实不然,数据源控件只负责收集与数据交互的相关信息,如:SqlDataSource的ConnectionString,AccessDataSource的DataFile
收集好这些信息后交给DataView类统一处理数据,但用户一般不与DataView类直接打交道,而是DataSourceControl,所以DataSourceControl需要获取DataView类,从而间接的调用数据相关操作方法。
因此,.net抽象定义出了一个接口IDataSource,实现 IDataSource 接口的任何类都是数据源控件,
.net为我们提供了一个起点DataSourceControl类,其实现了IDataSource 接口
public class MyDataSourceView : DataSourceView
public class MyDataSourceControl : DataSourceControl
<aspDemo:MyDataSourceControl ID="MyDataSourceControl1" runat="server"></aspDemo:MyDataSourceControl>
<asp:GridView ID="GridView1" runat="server" DataSourceID="MyDataSourceControl1">
</asp:GridView>
[b]三.加强功能
上面是最简单的实现,这样的示例你应该很容易理解。看上上面的示例,你一定会说这样的控件有何用,是的,没用。在这里我们应该熟悉下内置的数据源控件为我们提供了哪些功能。下面可能是你需要的
1.数据操作需要的参数,.net已经为你提供Parameter类及ParameterCollection集合
2.返回数据类型DataReader or DataSet
3.数据操作执行语句(即sql命令语句)
4.描述sql命令类型 (即文本 or 存储过程)
5.事件 在数据操作前后提供事件触发,如Selected(检索数据完成后)和Selecting(检索数据前)
...还有其他你可能想的到的。
还是上面的话,DataSourceControl封装一些基本的属性提供给DataSourceView使用,DataSourceView提供实现.
四.简单思路
1.定义需要的成员
这里先说明DataSourceView的实现,因为其为核心操作的具体实现
这里你可以根据你提供的具体操作的一个操作来实现,下面的则可触类旁通,如检索数据操作
(1)SelectCommand属性,用于检索数据的字符串
public string SelectCommand
public SqlDataSourceCommandType SelectCommandType
public ParameterCollection SelectParameters
public event SqlDataSourceStatusEventHandler Selected
public event SqlDataSourceSelectingEventHandler Selecting
[/b] protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
{
}
此外DataSourceControl也需要根据不同数据的来源定义相关属性,当然还有其他你可能想到的,你也可以加进去.
此篇就先此打住,至少实现了一个最简单的示例^__^.下次我们继续,不然篇幅可能太长.有些问题放在一起太多,可能太乱.其实现在我们已经看到一些自定义的数据源控件了,如支持NBear和Nhibernate的数据源控件,大家可以参考以下.
本文结束^__^
[/b]
上两篇讨论了如何定义结合数据源控件的数据绑定控件.这次我们一起来看下数据源控件是如何实现的。asp.net2.0已经为我们提供了很多数据源控件,相信大家都用过了,也希望大家对其有所熟悉.关于它能做什么就不说了。下面我们也一起来看看,如何简单的实现.
一.你必须了解的
1.关于数据源控件(DataSourceControl)
虽然表面看来,给数据绑定控件指定DataSourceID属性,数据源控件帮你做了一切工作,其实不然,数据源控件只负责收集与数据交互的相关信息,如:SqlDataSource的ConnectionString,AccessDataSource的DataFile
收集好这些信息后交给DataView类统一处理数据,但用户一般不与DataView类直接打交道,而是DataSourceControl,所以DataSourceControl需要获取DataView类,从而间接的调用数据相关操作方法。
因此,.net抽象定义出了一个接口IDataSource,实现 IDataSource 接口的任何类都是数据源控件,
.net为我们提供了一个起点DataSourceControl类,其实现了IDataSource 接口
public class MyDataSourceView : DataSourceView
public class MyDataSourceControl : DataSourceControl
<aspDemo:MyDataSourceControl ID="MyDataSourceControl1" runat="server"></aspDemo:MyDataSourceControl>
<asp:GridView ID="GridView1" runat="server" DataSourceID="MyDataSourceControl1">
</asp:GridView>
[b]三.加强功能
上面是最简单的实现,这样的示例你应该很容易理解。看上上面的示例,你一定会说这样的控件有何用,是的,没用。在这里我们应该熟悉下内置的数据源控件为我们提供了哪些功能。下面可能是你需要的
1.数据操作需要的参数,.net已经为你提供Parameter类及ParameterCollection集合
2.返回数据类型DataReader or DataSet
3.数据操作执行语句(即sql命令语句)
4.描述sql命令类型 (即文本 or 存储过程)
5.事件 在数据操作前后提供事件触发,如Selected(检索数据完成后)和Selecting(检索数据前)
...还有其他你可能想的到的。
还是上面的话,DataSourceControl封装一些基本的属性提供给DataSourceView使用,DataSourceView提供实现.
四.简单思路
1.定义需要的成员
这里先说明DataSourceView的实现,因为其为核心操作的具体实现
这里你可以根据你提供的具体操作的一个操作来实现,下面的则可触类旁通,如检索数据操作
(1)SelectCommand属性,用于检索数据的字符串
public string SelectCommand
public SqlDataSourceCommandType SelectCommandType
public ParameterCollection SelectParameters
public event SqlDataSourceStatusEventHandler Selected
public event SqlDataSourceSelectingEventHandler Selecting
[/b] protected override IEnumerable ExecuteSelect(DataSourceSelectArguments arguments)
{
}
此外DataSourceControl也需要根据不同数据的来源定义相关属性,当然还有其他你可能想到的,你也可以加进去.
此篇就先此打住,至少实现了一个最简单的示例^__^.下次我们继续,不然篇幅可能太长.有些问题放在一起太多,可能太乱.其实现在我们已经看到一些自定义的数据源控件了,如支持NBear和Nhibernate的数据源控件,大家可以参考以下.
本文结束^__^
相关文章推荐
- 一起谈.NET技术,asp.net控件开发基础(22)
- asp.net控件开发基础(22) --------定义数据源控件(1)
- asp.net控件开发基础(22)
- asp.net控件开发基础(22)
- asp.net控件开发基础(2)
- asp.net控件开发基础(17)
- asp.net控件开发基础 来源:http://www.clingingboy.com/blog/article.asp?id=258
- asp.net控件开发基础(8)
- asp.net控件开发基础(16)
- asp.net控件开发基础(12)
- asp.net控件开发基础(21)
- 基础温习(三) 开发ASP.NET控件基础
- asp.net控件开发基础(1)
- asp.net控件开发基础(1)
- asp.net控件开发基础系列
- asp.net控件开发基础(17) --------初识数据绑定控件
- ASP.NET AJAX 控件开发基础
- asp.net控件开发基础(1)
- asp.net控件开发基础(9)
- asp.net控件开发基础(15)