TextDataSource(1) — DataSourceControl内幕
.NET 2.0中Web Site开发的数据操作和1.1下的有很大的差别,虽然像DataSet、SqlConnection、SqlCommand等组件还是能继续使用,但其使用方式有了很大变化:在.NET 2.0里HtmlForm和Page之间的界限更明确,两者之间的唯一联系就是HtmlForm里的Page指令中的CodeFile、Inherits,这样做的好处我想不外乎是让服务端代码和客户端代码分离更彻底,代码更清晰;.NET 2.0里所有的组件都放置在Component Designer中,而不像1.1下组件放置在HtmlForm Container上,这样做的直接影响就是HtmlForm的DataGrid这样的数据绑定控件就不能直接通过属性窗口把DataSet设置到其DataSource属性上,所以ms把DataGrid的DataSource属性让其在属性窗口中不可见了(很狡猾吧),取而代之的DataSourceId这样的一个属性,那我们下面就来看看DataSourceId到底是个什么样的东西呢?
在.NET 2.0里Web开发中增加了SqlDataSource、AccessDataSource、ObjectDataSource、XmlDataSource和SiteMapDataSource五个新的数据源控件,至于这五个控件的用户请大家去查相关的帮助,而DataSourceId就是选择这五种控件的。
有个比较有意思的问题,上述的五个是控件,但是在运行时却没有UI呈现,与控件的定义稍微有点相左:控件是指在运行时有呈现UI的组件,哈,如果我理解有问题,请高手不要留情,给与指教。
既然上述的五个是.NET 2.0的特色,那我们就来深层次的了解下它的内部机制,我将会写一个TextDataSource(可以绑定到Text文件,把文件的数据显示出来。)为例来说明。
要想DataGrid等数据绑定控件能通过DataSourceId能选择放置在HtmlForm上的数据源控件,其实很简单只要让你的数据源控件继承于IDataSource接口就可以了,在.NET里还为我们提供了一个DataSourceControl的基类,它也是从IDataSource接口继承下来的,而且为我们封装了些基本操作,所以就直接从DataSourceControl继承。



































效果如下:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!