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

推荐订阅源

Attack and Defense Labs
Attack and Defense Labs
The GitHub Blog
The GitHub Blog
C
Check Point Blog
博客园_首页
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
F
Full Disclosure
Microsoft Security Blog
Microsoft Security Blog
爱范儿
爱范儿
Recent Announcements
Recent Announcements
阮一峰的网络日志
阮一峰的网络日志
G
GRAHAM CLULEY
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
T
Threat Research - Cisco Blogs
C
Cybersecurity and Infrastructure Security Agency CISA
V
Vulnerabilities – Threatpost
K
Kaspersky official blog
博客园 - 司徒正美
S
Schneier on Security
T
The Exploit Database - CXSecurity.com
Project Zero
Project Zero
云风的 BLOG
云风的 BLOG
Cisco Talos Blog
Cisco Talos Blog
Know Your Adversary
Know Your Adversary
雷峰网
雷峰网
V
V2EX - 技术
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Spread Privacy
Spread Privacy
罗磊的独立博客
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
S
Security Affairs
SecWiki News
SecWiki News
Schneier on Security
Schneier on Security
O
OpenAI News
Jina AI
Jina AI
PCI Perspectives
PCI Perspectives
Cyberwarzone
Cyberwarzone
Y
Y Combinator Blog
Apple Machine Learning Research
Apple Machine Learning Research
B
Blog RSS Feed
I
InfoQ
D
Docker
P
Palo Alto Networks Blog
Recorded Future
Recorded Future
M
MIT News - Artificial intelligence
博客园 - Franky
B
Blog
Scott Helme
Scott Helme
博客园 - 叶小钗
D
DataBreaches.Net

博客园 - 邢少

IM客户端Socks 5代理协议应用 招聘程序员的方法 CAS 与.net 集成的 “循环重定向”问题分析 .net 开发 跬步篇(6〕—绝对路径转换相对路径的 麻雀虽小,五脏俱全-C# 创建windows服务、socket通讯实例 asp.net 跬步篇(5) repeater 自定义模板实现特殊样式控件 asp.net 跬步篇(4) EnableSessionState设置 引起的框架集加载问题 控制CPU曲线引发的感想 asp.net 开发 跬步篇〔3〕.net 邮件批量发送 驱驾ViewState利剑—压缩ViewState 如何驾驭ViewState利剑 编程“方便面”之用户控件 天气数据一把抓。 .NET程序员应该知道些什么[转载] asp.net 开发 跬步篇(2) JQuery +ashx 升级之 JSon asp.net 开发 跬步篇〔1〕_ajax web页面复杂处理延时、客户交互问题 Asp .net +jquery +.ashx 文件实现分页 [技术思考]一段时间后的回首。 粮食的存在
Gridview repeater datelist 区别
邢少 · 2009-09-09 · via 博客园 - 邢少

    看到这个题目,其实我都有点晕这个问题,真是太没有什么水平了,大概专门作web开发哥们们,应该都有一定的了解。总而言之它们都是数据显示控件,

     GridView 可能大家都知道,也是使用频率最多的控件,它有着操作简单,功能强大,表现形式多样的特点,算是.net控件集中的核心控件,它是 ASP.NET 的早期版本中提供的 DataGrid 控件的后继控件,增加了利用数据源控件绑定数据的新功能,定义多个主键字段的功能、使用绑定字段和模板来实现灵活的用户界面自定义,以及用于处理或取消事件的新模型。它还提供了内嵌缺省样式,数据分页、浏览分页数据,对列进行排序、以及编辑或删除单个记录的功能。一句话,真的是很强大。但是“老天是公平”,在给了它强大的功能的同时也留给了它一点点遗憾,在显示表现形式简单的大量数据的时候,中间存在了大量的非必要的性能损失。做过一个测试,同样的数据量前提下GridView明显慢于其它的数据控件。结论在某些简单显示数据列表时,不要求其它复杂操作的情况下,还是不要用它。

     Repeater 顾名思义 就是重复绑定数据的控件,它没有内置布局。只能使用模板创建 Repeater 控件的布局相,比较GridView而言它可能没有后者强大的功能,多样的表现形式,但是就是因为它的简单使的它成为所有数据显示控件中效率最高的控件,如果没有很复杂的功能、表现形式需求,它绝对是首选。

   下面出场的是今天我要说的主角,在我还不是很明白它与前面两个控件的区别的时候,也看过很对的介绍它们区别的文章,都说它是界于GridViewrepeater之间的一个控件,效率还行,功能一般,看的最多的一句话是“DataList 控件与 Repeater 控件的不同之处在于:DataList 控件将项显式放在 HTML 表中,而 Repeater 控件则不然”。一看确实是这么回事,在单纯的显示数据列表的时候,操作没有GridViewRepeater简单方便,效率也不是最高的。既不简单、也不高效。鸡肋??!!

错!“牛刀”只有在杀牛的时候才知道什么叫利器,你拿牛刀对付小鸡,当然是手忙脚乱,没准还伤了自己。但是对付“牛”问题,那叫舒服~!“牛刀一出,万牛臣服!” 最强点--自定义表现形式的超强灵活性!!DataList 可以实现任何样式的数据绑定,在贴切点说它是“治疗”绑定特殊样式的“通用药”。只要是数据绑定,结合数据源控件,你可以用它设计出千变万化的形式。

举个例子,我以前碰到一个问题,就是要实现如图样子


     开始真是一头雾水,实现的功能要求是动态的读取数据库生成上图的样子,一行最多显示
2列。首先这个功能可能不是只有它可以实现,GridView也可以,但是实现该效果绝对是 Datalist最合适。

Code

搞定~!用GridView..虽然和这个代码差不多,但是一行两列呢?RepeatColumns=“2”搞定!

GridView得想想了。效率上就不说了,GridView直接淘汰。

    真正让我认识到DataList 实用强大的其实是在做一个 调查表自动生成系统中,要实现自定义生成调查表,调查表包括了单选、多选、填空、问答。快成一个考试系统了。

    你可以想象用GridView实现吗?..你可以想象用repeater实现吗?….于是我想到了DataList

    一般的这种效果都是用javascript来实现,但是作为熟悉c#代码多于js 的我来说。我还是用DataList实现了。类似于上面的例子,只不过里面的Checkboxlist控件编程了,一个个的radibuttonlist、文本框、panel、控件集合。思想其实和上面的一样。只是逻辑复杂了一点。

    在我完成的那一刻,发现DataList 在某些特定场合还真是“牛刀”啊~。

    从灵活性和执行效率上综合考虑,比较GridView Repeater DataList三者、Repeater当属第一。但是对待嵌套绑定问题、疑难杂症,还是用DataList思考一下吧。

这些是我在使用三个绑定控件的时候,对它们的认识,纯属个人意见,如果有异议,可以交流。。