簡體   English   中英

將圖像添加到在CodeBehind中創建的GridView中

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM