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

推荐订阅源

S
SegmentFault 最新的问题
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Cisco Talos Blog
Cisco Talos Blog
Spread Privacy
Spread Privacy
Scott Helme
Scott Helme
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Securelist
酷 壳 – CoolShell
酷 壳 – CoolShell
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
博客园 - 叶小钗
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网
量子位
Security Latest
Security Latest
P
Proofpoint News Feed
P
Privacy International News Feed
P
Palo Alto Networks Blog
D
DataBreaches.Net
大猫的无限游戏
大猫的无限游戏
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Google Online Security Blog
Google Online Security Blog
Webroot Blog
Webroot Blog
云风的 BLOG
云风的 BLOG
N
Netflix TechBlog - Medium
Vercel News
Vercel News
博客园 - 【当耐特】
C
CERT Recently Published Vulnerability Notes
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
Hacker News - Newest:
Hacker News - Newest: "LLM"
K
Kaspersky official blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Stack Overflow Blog
Stack Overflow Blog
AWS News Blog
AWS News Blog
博客园 - Franky
爱范儿
爱范儿
T
Tor Project blog
The GitHub Blog
The GitHub Blog
宝玉的分享
宝玉的分享
小众软件
小众软件
L
LINUX DO - 最新话题
Application and Cybersecurity Blog
Application and Cybersecurity Blog
W
WeLiveSecurity
SecWiki News
SecWiki News
L
LangChain Blog
I
InfoQ

博客园 - CodeBlove

SQL Server 重置SA密码语句 区分扫描枪输入和键盘输入的实现 VBA 发送邮件代码 WIN7用户文件夹迁移 3D空间基础概念之三:几何变换 IP地址排错命令 TCP/IP协议、DoD模型、OSI模型 IP寻址 IP报头包含的协议 IP报头结构 UDP数据报协议 TCP数据段格式 数据链路层(2层)数据帧结构 MAC地址结构 WOW 各等级属性换算表 基于OPENGL使用C++实现相机类 正则表达式匹配EXCEL地址字符串 C#组件项目设置与开发应用范例 清理SQLSERVER日志
DOTNET前台页面与数据表常规绑定机制分析
CodeBlove · 2010-08-04 · via 博客园 - CodeBlove

为今后开发动态页面做个备忘。

ObjectDataSource (数据源)
需要绑定业务对象名和数据对象名

  • 业务对象实为一个类对象,包含数据表特定操作方法,这些方法大多包含数据对象作为参数传递。
  • 数据对象包含一组与数据表字段对应的同名同类型属性,用于在页面与数据库之间传递值。

数据源可以选用4个主要数据表操作方法名(select,update,insert,delete),这些方法包含在业务对象里,同时数据源还可以定义其他事件名,事件方法都在后台文件中。

FormView是一个具有数据提交功能的视图,是对HTML页面中的form标签的封装,主要提供了新建、维护,可以包含edit、insert、item、empty四个模板,页面的不同状态以不同模板呈现FormView的界面,当指定数据源后,FormView与ObjectDataSource建立了关联,使得不同的模板与数据源的相应方法自动绑定。

  • EDIT模板用于update时数据维护,包含相关控件,包含保存,取消按钮,通过GridView选定或其他方式指定已存在的记录,切换成EDIT模板后自动执行数据源的SELECT方法,取得数据对象后绑定模板中的控件,显示记录值。当用户修改好数据点击保存后执行数据源的UPDATE方法。
  • INSERT模板用于新建记录数据输入,包含相关控件、包含插入、取消按钮,切换后所有控件初始化,等数据输入完成后点击插入按钮,执行数据源的INSERT方法
  • ITEM模板用于显示指定记录的数据、一般为空,包含新建按钮,用来切换到INSERT模板,执行SELECT,可以用来显示记录内容
  • EMPTY模板用于没有指定记录时的界面,一般为空,包含新建按钮,用来切换到INSERT模板


FORMVIEW中所有具有写数据表的模板都必须包含与数据对象一致的控件并绑定数据对象的相关属性,
如果部分数据不需要呈现,也必须以隐藏控件(HIDDEN)绑定属性,因为.NET的绑定机制必须按数据对象的所有属性全部绑定,否则会出错。
绑定数据时,绑定方式可以用类似宏的函数干预,以达到不同的要求,比如格式化日期显示。

代码举例(控件绑定数据对象属性)
Value='<%# Bind("StartDate")%>'  双向绑定,可以理解为读写
Value='<%# Eval("StartDate")%>'  显示绑定,可以理解为只读
Text='<%# Obj.Format(Eval("StartDate") ) %>'  日期显示绑定后格式化
Text='<%#WAI.GetGroupName(Eval("Deptcode")) 显示绑定后取转换

从例子中可以了解到,前台显示绑定使用后台对象和方法处理。


大部分数据系统中对数据库涉及的操作不外乎记录的插入(新建)、更新(维护)、删除和查询。从功能角度看,除了查询之外,其他操作都是只能作为数据维护,同时只能授权给数据维护人员,而查询

页面一般用于对对一般用户的查询、查看、统计汇总。

GRIDVIEW的绑定机制和FORMVIEW类似。