Как сделать так, чтобы один из столбцов в gridview был изображением? - PullRequest
5 голосов
/ 02 ноября 2011

У меня есть gridview, который создается в codebehind.

В приведенном ниже коде я бы хотел, чтобы в третьем столбце было какое-то изображение (например, значок PDF или аналогичный).

Я думаю, Type.GetType нужно изменить для столбца с именем "Изображение" ??

DataTable dt = new DataTable();
GridView gview = new GridView();
DataRow dr;
DataColumn dc = new DataColumn("Description", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("Image", Type.GetType("System.String"));
dt.Columns.Add(dc);
dc = new DataColumn("Size (MB)", Type.GetType("System.String"));
dt.Columns.Add(dc);
{
    dr = dt.NewRow();
    dr["Description"] = item["Name"];
    dr["Size (MB)"] = item["Size"];
    dr["Image"] = "pdf.gif"; // put complete reference here,
    dt.Rows.Add(dr);
}
gview.DataSource = dt;
gview.DataBind();
Controls.Add(gview);

Ответы [ 2 ]

7 голосов
/ 02 ноября 2011

Просто сохраните URL-адрес изображения в DataTable, а не фактическое изображение. Затем используйте TemplateField в вашем GridView и поместите изображение в ItemTemplate:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Image ID="Image1" runat="server" ImageUrl='<%# Eval("ImageUrlColumn") %>' ... />
    </ItemTemplate>
</asp:TemplateField>

Вы также можете использовать ImageField:

<asp:ImageField DataImageUrlField="ImageNameColumn" DataImageUrlFormatString="/images/{0}"></asp:ImageField>

EDIT

При объявлении столбцов попробуйте следующее:

dt.Columns.Add("Image", typeof(string));

И чтобы установить значение столбца изображения, попробуйте это:

dr.SetField<string>("Image", "img.png");
0 голосов
/ 14 января 2016

В виде сетки поместите столбец поля команды, как показано ниже

<asp:CommandField runat="server" ShowDeleteButton="true" ButtonType="Image" DeleteImageUrl="images/delete.png" ></asp:CommandField>

установить свойство gridview следующим образом

AutoGenerateDeleteButton = "ложь"

...