惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Know Your Adversary
Know Your Adversary
小众软件
小众软件
L
LangChain Blog
月光博客
月光博客
博客园 - Franky
Microsoft Azure Blog
Microsoft Azure Blog
Y
Y Combinator Blog
有赞技术团队
有赞技术团队
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
MongoDB | Blog
MongoDB | Blog
Recorded Future
Recorded Future
V
Visual Studio Blog
TaoSecurity Blog
TaoSecurity Blog
S
Schneier on Security
C
Cybersecurity and Infrastructure Security Agency CISA
P
Privacy & Cybersecurity Law Blog
T
Threat Research - Cisco Blogs
D
DataBreaches.Net
L
LINUX DO - 热门话题
C
Check Point Blog
F
Fortinet All Blogs
Hugging Face - Blog
Hugging Face - Blog
The Hacker News
The Hacker News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Microsoft Security Blog
Microsoft Security Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
V
V2EX
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
L
Lohrmann on Cybersecurity
博客园 - 司徒正美
T
Threatpost
P
Palo Alto Networks Blog
A
About on SuperTechFans
Spread Privacy
Spread Privacy
Engineering at Meta
Engineering at Meta
N
News | PayPal Newsroom
T
Tailwind CSS Blog
The Last Watchdog
The Last Watchdog
Blog — PlanetScale
Blog — PlanetScale
A
Arctic Wolf
量子位
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
博客园 - 聂微东
Google Online Security Blog
Google Online Security Blog
Google DeepMind News
Google DeepMind News
www.infosecurity-magazine.com
www.infosecurity-magazine.com
V
Vulnerabilities – Threatpost
H
Hacker News: Front Page

博客园 - mapserver

MicroOrm.Net和现有ORM产品的对比 MicroOrm.Net(8) Table.Query() - Distinct、Skip & Take MicroOrm.Net(7) Table.Query() - Group By & Having MicroOrm.Net(6) Table.Query() - Join & Order By MicroOrm.Net(5) Table.Query() - Select MicroOrm.Net(4) Table.Query() - Where MicroOrm.Net(3) Database、Table、Column、Expression、Math&MathE MicroOrm.Net(2) 基础及动态特性 MicroOrm.Net(1) 总览 Asp.net服务器控件编程(6) ViewState(二)——ViewState用法和IStateManager Asp.net服务器控件编程(5) 复杂属性 Asp.net服务器控件编程(4) 呈现 Asp.net服务器控件编程(3) ViewState(一)——asp.net控件的精华之一 Asp.net服务器控件编程(2) 来做个热身运动吧 Asp.net服务器控件编程(1) 开篇、基础 Asp.net服务器控件编程 总览 TextDataSource(3) — 请把我的数据更新回去 TextDataSource(2) — 翠花,上“数据” .NET组件编程(10) 补充 ISupportInitialize
TextDataSource(1) — DataSourceControl内幕
mapserver · 2006-04-17 · via 博客园 - mapserver

        .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;
        }

    }

}

效果如下: