![](/img/trans.png)
[英]how to render image in gridview when adding the image from codebehind
[英]Adding image to GridView created in CodeBehind
我要做的第一件事是創建一個數據表,然后將其綁定到GridView
這是我的代碼
DataTable dt = new DataTable();
DataColumn imgC = dt.Columns.Add("img", typeof(string));
DataRow row1 = dt.NewRow();
row1["img"] = "~images/foo.png";
GridView gv = new GridView();
gv.DataSource = dt;
gv.DataBind();
cust_services.Controls.Add(gv);
我不確定從這里到哪里,因為它只顯示文本,所以我嘗試創建圖像並編寫
row1["img"] = img;
您可以在Gridview
使用<asp:ImageField/>
來實現此目的。 所以您的標記看起來像
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:ImageField DataImageUrlField="Value" ControlStyle-Width="100" ControlStyle-Height="100" HeaderText="My Image" />
</Columns>
</asp:GridView>
在您的C#代碼中,您可以使用List
添加圖像。 這么簡單
List<ListItem> files = new List<ListItem>();
files.Add(new ListItem("~/Images/SomeImage.jpg"));
GridView2.DataSource = files;
GridView2.DataBind();
這只會將一個圖像添加到網格。 如果要將所有圖像添加到特定目錄中的網格中,則只需使用foreach
循環即可。
string[] filePaths = Directory.GetFiles(Server.MapPath("~/Images/"));
List<ListItem> files = new List<ListItem>();
foreach (string filePath in filePaths)
{
string fileName = Path.GetFileName(filePath);
files.Add(new ListItem(fileName, "~/Images/" + fileName));
}
GridView2.DataSource = files;
GridView2.DataBind();
您的綁定是正確的,但您還需要將圖像綁定到GridView中的ImageField。
<asp:ImageField DataImageUrlField="BoundName"></asp:ImageField>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.