Asp.Net中替代Eval的两种方式
在asp.net中的数据绑定中,我们经常会用到Eval,不过大家都知道Eval绑定是通过反射来实现的, 而反射势必会对性能造成一定的影响。不过有两种替代的方式来实现绑定数据,对性能略有提高。
1 当数据源为DataTable时,用下面的方式:
后台代码
protected void Page_Load(object sender, EventArgs e) {DataTable dt = new DataTable();dt.Columns.Add("Name", typeof(System.String));dt.Columns.Add("Age", typeof(System.Int32));for (int i = 0; i <= 20; i++){DataRow dr = dt.NewRow();dr[0] = "oec2003_" + i.ToString();dr[1] = i + 20;dt.Rows.Add(dr);}rptUser.DataSource = dt;rptUser.DataBind(); }
前台代码
<asp:Repeater ID="rptUser" runat="server"><ItemTemplate>姓名:<%# ((DataRowView)(Container.DataItem))["Name"] %>年龄:<%# ((DataRowView)(Container.DataItem))["Age"]%><br /></ItemTemplate> </asp:Repeater>
2 当数据源为泛型类时,用下面的方式。
后台代码
protected void Page_Load(object sender, EventArgs e) {List<User> user = new List<User>();for (int i = 0; i < 10; i++){user.Add(new User(i, "oec2003"));}rptUser.DataSource = user;rptUser.DataBind(); }
前台代码
<asp:Repeater ID="rptUser" runat="server"><ItemTemplate>姓名:<%# (Container.DataItem as User).Name %>年龄:<%# (Container.DataItem as User).Age%><br /></ItemTemplate> </asp:Repeater>
经过测试在10w以上数据量的时候性能差别才比较明显,而我们平时做数据绑定的时候通常都是用的分页存储过程或其他的分页方式,每页最多几十条数据,所以我认为Eval在性能上的损耗并不构成性能瓶颈。
转载于:https://blog.51cto.com/oec2003/1043822
Asp.Net中替代Eval的两种方式相关推荐
- 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- 使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用
实验4:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用 姓名:李冬辉 学号:20133201 注: 原创作品转载请注明出处 + <Linux内核分析>MOOC课程http ...
- sh执行文件 参数传递_详解shell中脚本参数传递的两种方式
方式一:$0,$1,$2.. 采用$0,$1,$2..等方式获取脚本命令行传入的参数,值得注意的是,$0获取到的是脚本路径以及脚本名,后面按顺序获取参数,当参数超过10个时(包括10个),需要使用${ ...
- Asp.net MVC在Razor中输出Html的两种方式
http://qubernet.blog.163.com/blog/static/177947284201485104616368/ Razor中所有的Html都会自动编码,这样就不需要我们手动去编码 ...
- WCF中的ServiceHost初始化两种方式
在宿主程序中初始化ServiceHost有直接写代码和使用配置文件两种方式.使用ServiceHost首先要引用System.ServiceModel 命名空间. 1 代码方式 using(Servi ...
- Java并发基础01. 传统线程技术中创建线程的两种方式
传统的线程技术中有两种创建线程的方式:一是继承Thread类,并重写run()方法:二是实现Runnable接口,覆盖接口中的run()方法,并把Runnable接口的实现扔给Thread.这两种方式 ...
- Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- WCF中的ServiceHost初始化两种方式(宿主)
在宿主程序中初始化ServiceHost有直接写代码和使用配置文件两种方式.使用ServiceHost首先要引用System.ServiceModel 命名空间. 1 代码方式 using(Servi ...
最新文章
- 编程基础知识科普:C#中的问号运算符
- 如何使用 python 减少 kaggle Mushroom Classification 数据集中的特性数量?
- java必读书籍_必读:Java Java
- 生活 list.php,list.php
- 环形电流计算公式_圆环电流的电流密度
- 计算机编程语言分类与区别
- 新浪微博api接口java_Java调用新浪微博API【转】
- 微信看涨跌30秒平台,10元微交易平台排行榜
- 超高频RFID R200系列远距离一体化读写器开发测试
- VC2005-应用程序正常初始化失败-0xc0150002
- java的duplicate用法_Java FloatBuffer duplicate()用法及代码示例
- 深度 | 刘群:基于深度学习的自然语言处理,边界在哪里?
- CSS3实现对话气泡效果
- the计算机科学全球大学排名,2020THE计算机科学专业排名发布,内地60所大学入榜,清华全球15...
- 关于servlet和jsp的学习总结二(详细)
- Java 生成 outLook .msg 文件
- C语言:一个球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下,再反弹;求它在第10次落地时,共经过多少米,第10次反弹多高;
- docker里面pytorch关于gloo地址声明
- IDA dword_xxx DCD 0xxxx用十六进制数表示的字符串解读
- 关于QT TTS ( TextToSpeech ) 编码导致的只能读英文不能读中文的问题