※ 引述《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