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

推荐订阅源

D
Docker
爱范儿
爱范儿
T
The Exploit Database - CXSecurity.com
量子位
T
Tailwind CSS Blog
T
Threatpost
The GitHub Blog
The GitHub Blog
AWS News Blog
AWS News Blog
云风的 BLOG
云风的 BLOG
K
Kaspersky official blog
P
Proofpoint News Feed
博客园 - 司徒正美
L
LangChain Blog
T
Threat Research - Cisco Blogs
C
CERT Recently Published Vulnerability Notes
罗磊的独立博客
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 叶小钗
S
Secure Thoughts
The Last Watchdog
The Last Watchdog
Spread Privacy
Spread Privacy
H
Hacker News: Front Page
T
Troy Hunt's Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
Google DeepMind News
Google DeepMind News
W
WeLiveSecurity
A
Arctic Wolf
Apple Machine Learning Research
Apple Machine Learning Research
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
P
Proofpoint News Feed
T
Tor Project blog
T
The Blog of Author Tim Ferriss
I
Intezer
P
Privacy & Cybersecurity Law Blog
美团技术团队
N
Netflix TechBlog - Medium
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
Application and Cybersecurity Blog
Application and Cybersecurity Blog
G
Google Developers Blog
Attack and Defense Labs
Attack and Defense Labs
T
Tenable Blog
月光博客
月光博客
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
腾讯CDC
Microsoft Security Blog
Microsoft Security Blog
A
About on SuperTechFans
Last Week in AI
Last Week in AI

博客园 - 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类似。