讀研的生活簡直就是扯淡,中國的教育原來就是這麼的悲催,後悔去讀研了。不感歎了,因為幫朋友忙,寫了一個關於這個的東西,所以轉載別人的代碼,學習,學習,不管以後如何學習都是第一位的。廢話不說,上代碼。
在GridView中顯示圖片
<1>添加 ImageField , 綁定到資料來源的某一列.
<2>編輯模板, 添加一個帶Image 的列.
以下詳述兩種方法:
<1>添加一個gridview 到頁面, 點選它的任務菜單"編輯列", 在彈出的編輯框中, 選擇ImageField 並點擊添加, 然後選中剛剛添加的列, 右側面板會顯示出它的屬性, 在DataImageUrlField 屬性中, 填入資料表中的列名.
代碼:
<asp:GridView ID="GridView1" runat="server">
<Columns>
<asp:ImageField DataImageUrlField="img">
</asp:ImageField>
</Columns>
</asp:GridView>
然後編輯後台代碼:
DataTable dt = new DataTable();
DataColumn dc = new DataColumn();
dt.Columns.Add(dc);
dc = new DataColumn("img");
dt.Columns.Add(dc);
DataRow dr = dt.NewRow();
dr[0] = "11111111111111111";
dr[1] = ResolveUrl("~/ok.gif");
dt.Rows.Add(dr);
dr = dt.NewRow();
dr[0] = "22222222222222222";
dr[1] = ResolveUrl("~/ok.gif");
dt.Rows.Add(dr);
GridView1.DataSource = dt;
GridView1.DataBind();
<2>編輯模板.
先編輯前台代碼:
<asp:GridView ID="GridView1" runat="server"> <Columns> <asp:TemplateField> <ItemTemplate> <asp:Image ID="img1" ImageUrl='<%#Eval("img") %>' runat="server" AlternateText="image lost" /> </ItemTemplate> </asp:TemplateField> </Columns> </asp:GridView>
與第一種方式相仿, 它最終的實現機制也是去檢索資料來源的列名, 所以在Eval 裡面, 以字串的方式給出包含圖片url 的列名, 後台代碼不變. 最終效果與第一種方式同.
木刀認為: 在目前討論的情況下, 第一種實現方法似乎更好一些, 不過xxField 控制項終究有限, 如果要往裡面放其它控制項, 就只得藉助於模板了, 所以第二種方式是更通用, 更強大的選擇.