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继承。

using  System;
using  System.Collections;
using  System.Data;
using  System.IO;
using  System.Security.Permissions;
using  System.Web;
using  System.Web.UI;
using  System.Web.UI.WebControls;

namespace  TextDataSourceLib
{
    [AspNetHostingPermission(SecurityAction.Demand, Level 
= AspNetHostingPermissionLevel.Minimal)]
    
public class TextDataSource : DataSourceControl
    
{
        
public TextDataSource() : base() { }

        
private string _fileName;
        
public string FileName
        
{
            
get
            
{
                
return _fileName;
            }

            
set
            
{
                _fileName 
= value;
            }

        }


        
protected override DataSourceView GetView(string viewName)
        
{
            
return null;
        }

    }

}

效果如下:

转载于:https://www.cnblogs.com/mapserver/archive/2006/04/17/377701.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值