作者dodoamuro (嘟嘟)
看板C_Sharp
标题Re: [问题] 自订class与GridView
时间Tue Sep 21 13:54:12 2010
※ 引述《dodoamuro (嘟嘟)》之铭言:
: ※ 引述《dodoamuro (嘟嘟)》之铭言:
: : 最近碰到了一个问题,
: : 第一步是自订一个class,我假设他为Employee好了,
: : 然後里面包含了姓名、薪水,
: : 之後我建立了一个Employee John = new Employee("John Lee",1234);
: : 而接下来想要用GridView将他展示出来,
: : 其中的DataSource却不知道该怎麽办,
: : 而上网查了很多资料,发现GridView通常是用来抓资料库里的资料,
: : 所以如果我要将她展示出我自己自订的class,自己塞的资料进去是错误的吗~"~?
: 我刚刚用ArrayList及List的方法用看看,程式码如下:
: ArrayList myAL = new ArrayList();
: myAL.Add(new Employee("Johnny Lee",50000));
: myAL.Add(new Employee("Alex Lin", 10000));
: ListBox1.DataSource = myAL;
: ListBox1.DataBind();
: 结果印出来的却是两行WebApplication1.Employee,而不是我输入的Johnny Lee等资料,
: 而如果使用
: GridView1.DataSource = myAL;
: GridView1.DataBind();
: 则会出现以下的错误:
: ID 为 'GridView1' 的 GridView 的资料来源没有任何可以产生资料行的属性
: (Property) 或属性 (Attribute)。请确认资料来源具有内容。
: 感觉应该已经快可以了,但不知道为什麽还是有错,
: 是值没有进到array里的关系嘛~"~
: 在这边请教各位了ˊˋ
最後写出来了,分享给大家一下,
就如同板友说的用ArrayList或List所产生的问题,
是没有将栏位定义,以及要使用GET及SET才会将资料写入,所以加上
<asp:Label ID="Label1" runat="server" Text='<%#Eval("Name") %>'></asp:Label>
将栏位定义好,并使用get,set以後就可以了。
其中也跟好心的板友讨论了一下,小弟才知道,
原来GridView的DataSource,不是只能吃表格,
而是只要有IList介面的都可以吃,真是学到了一课,
之後一定要好好再把打NET练熟,也请各位多多指教!
大家一起加油!!!
--
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.210.89