repeater绑定泛型list<string>
菜鸟D重出江湖,依然是菜鸟,囧!言归正传——
工作中遇到一个repeater绑定的问题,数据源是一个list<string> 集合,然后在界面上使用<%#Eval()%>绑定。问题来了,Eval该绑定那个属性名(或者字段)呢?
先说菜鸟D的想法:将list<string>变成list<匿名> ,然后绑定匿名类型的某一属性。菜鸟为啥会有这样的想法,首先list<string>只用一次,而且只有一个属性(字段),没有必要新声明一个类型,匿名就可以胜任,反正我们更关心的是属性(字段)而不是类型。其次,你不觉得写一个匿名集合有够高大上么?!
菜鸟D开始了尝试,用脚趾也能想出来结果,失败—— 理由:声明集合不能使用匿名类型(有高人不服可以尝试,欢迎提供新的解决方法,总之菜鸟D没有写出来)
然后有位朋友提示可以使用动态dynamic(自行脑补),于是乎,菜鸟D搞出来一个动态集合(这个貌似会敲代码都会写吧),动态集合里随意插入,没人在意是什么类型,当然集合里类型是一致的,你总不能插一个int,再插一个string吧。此时匿名就派上用场了。
List<dynamic> list = new List<dynamic>();
list.Add(new { Name = "" });
list.Add(new { Name = "" });
这时候绑定就没有问题了,Eval也可以找到合适的属性(字段)来绑定了。这种方法就是采用匿名类型+动态集合来绑定的,硬生生把string变成一个实体类,想想也没必要。
然后在网上找个下,还真找到类似的情况,博问里边还给出了解决方案。
<%# ((string)Container.DataItem)%>
就是这么简单,你不用考虑什么实体类。菜鸟D只能拜服:高人啊!
这个问题提供了两种解决方案,哪一种更适合就选哪一种呗。不过菜鸟D感觉动态集合+匿名类型只是在这里不是最佳方案,一定有更适合的地方。不足之处,欢迎指正。
-------------------------------------------------------------------------------------
菜鸟D希望这篇文字能够帮到你。
下面内容属于基础知识科普:
匿名类型:匿名类型提供了一种方便的方法,可用来将一组只读属性封装到单个对象中,而无需首先显式定义一个类型。 类型名由编译器生成,并且不能在源代码级使用。 每个属性的类型由编译器推断。注意:属性是只读的,也就是说匿名类型适合展示。由于属性只读,赋值什么的就不要想了,编译不通过的。匿名类型更多的使用于linq语句中。
var v = new { Amount = , Message = "Hello" };
Console.WriteLine(v.Amount + v.Message);
动态类型dynamic(csdn上为使用类型): 该类型是一种静态类型,但类型为 dynamic 的对象会跳过静态类型检查。 大多数情况下,该对象就像具有类型 object 一样。 在编译时,将假定类型化为 dynamic 的元素支持任何操作。
在声明中,作为属性、字段、索引器、参数、返回值或类型约束的类型。在显式类型转换中,作为转换的目标类型。在以类型充当值(如 is 运算符或 as 运算符右侧)或者作为 typeof 的参数成为构造类型的一部分的任何上下文中。
dynamic在mvc中使用的更多,也有人说它与js的var很像(当然指用法)。经常与 ExpandoObject 一起使用,常用mvc的人应该简单比较多。
repeater绑定泛型list<string>的更多相关文章
- WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决
背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...
- DataGridView绑定泛型List时,利用BindingList来实现增删查改
DataGridView绑定泛型List时,利用BindingList来实现增删查改 一. DataGridView绑定泛型List的种种 1.DataGridView数据绑定对比(DataTa ...
- winform datagridview 绑定泛型集合变得不支持排序的解决方案
原文:winform datagridview 绑定泛型集合变得不支持排序的解决方案 案例: 环境:Winform程序 控件:Datagridview 现象:Datagridview控件绑定到List ...
- [转]WinForm DataGridView 绑定泛型List(List<T>)/ArrayList不显示的原因和解决
背景:无意间遇到了一个不大不小的问题,希望对一些遇到的人有所帮助! 一.问题 WinForm DataGridView 绑定泛型List (List<T>)/ArrayList不显示,UI ...
- 再谈怎样以最简单的方法将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式
今天review代码,看见某些大爷在将泛型为String类型的集合或String类型的数组转化为逗号间隔字符串形式时仍然仅仅顾结果不注重过程,"大爷"咱能负点责任吗? 将泛型为St ...
- Repeater绑定List泛型对象
后台: public void BindData() { List<WeiBo> DataList = new List<WeiBo>(); ...
- Repeater绑定数组并显示其值
web开发中,尤其是对于数据展示,不得不说Repeater是一个万能的控件,而且使用也很方便. 在ASP.NET中将数组绑定到Repeater中请问如何在Repeater前台页面中显示该数组的值? s ...
- Repeater绑定数据库,使用AspNetPager进行分页
分页是Web中经常遇到的功能,分页主要有真分页和假分页. 所谓真分页是指:每一页显示多少数据,就从数据库读多少数据: 假分页是指:一次性从数据库读取所有数据,然后再进行分页. 这两种分页方式区别在于从 ...
- Repeater绑定数据库
前台: <table width="> <tr> <td class="tr1"> <asp:Label Text=" ...
随机推荐
- HIDKomponente使用读写Hid设备(转)
源:HIDKomponente使用读写Hid设备一瞥 HIDKomponente 是delphi中使用的第三方Hid控件库,可以检测.控制连接到电脑的Hid设备.一般情况下多为usb设备. HIDKo ...
- java实现——003二维数组中的查找
import java.util.Scanner; public class T003 { public static void main(String[] args) { Scanner in = ...
- UVa 483 - Word Scramble
题目大意:给一个由单词组成的句子,只反转单词内部的次序而不改变单词之间的次序.如“I love you.”转换成“I evol .uoy”. #include <cstdio> #incl ...
- Object.create() 实现
if (typeof Object.create !== 'function') { Object.create = function (o) { function F() {} F.prototyp ...
- 华为AR1220新机试用
今天刚刚收到华为AR1220,以为直接就可以用web界面管理,结果开机后才知道web管理界面需要激活. 下面简单分享这个过程: *** 用控制台线(一边RJ45,一边9针串)连接Router cons ...
- centos服务器设置代理上网的方法
这里以centos7.0为例,记录代理服务器设置过程: 1.全局的代理设置: vi /etc/profile 添加下面内容 http_proxy = http://username:password@ ...
- php 正则只保留 汉字 字母 数字
$str = "?><?>”\"<喂喂喂555?><|“:L}{P+_)In thsdff0?><M<>\"s ...
- jQuery内容过滤器
jQuery内容过滤器 <h1>this is h1</h1> <div id="p1"> <h2>this is h2</h ...
- pureMVC简单示例及其原理讲解一(开篇)
pureMVC是一个MVC框架,皆在最大限度的减少MVC间的耦合性.本人刚刚接触pureMVC时感到一头雾水,不知从何入手,也不知道从何学习.好在本人有耐性且能看懂英文技术文档,面向对象的编程能力也比 ...
- SoapUI:使用Excel进行参数化
本章中学习如下内容: 1) 使用DataSource调用Excel中的数据给接口参数化: 2) 使用DataSource Loop使得测试用例根据Excel中的取值循环 ...