首页 文章

将图像放在DataTable中并将表设置为datasource到gridview

提问于
浏览
0

我在将图像放入DataTable并将此表设置为gridview的数据源时出现问题,我到处搜索,但没有我没有运气 . 这是问题所在:

private void populateGrid()
    {
       // Gets a datatable from a stored procedure
        DataTable ragTable = ProjetoBO.HistoricoRAGStatusProjeto(Convert.ToInt32(Session["idProjeto"]));

        int group= -1;

        int cont = 1;

        var table = GetDataTable(ragTable);

        DataRow dataRow = table.NewRow();

        foreach (DataRow row in ragTable.Rows)
        {
            cont++;
            if (Convert.ToInt32(row[9]) != group)
            {
                cont = 1;
                group= Convert.ToInt32(row[9]);
                table.Rows.Add(dataRow);
                dataRow = tabelaFinal.NewRow();
            }
            dataRow[0] = DateTime.Parse(row[2].ToString()).ToShortDateString();

            //putting some random image just for testing purpose
            dataRow[cont] = Properties.Resources.myIcon;

        }
        //my grid
        histRagStatus.DataSource = table ;
        histRagStatus.DataBind();
    }
    //Creates a dataTable with the columns I need
    private DataTable GetDataTable(DataTable ragTable)
    {
        var newTable= new DataTable();

        newTable.Columns.Add("Date");

        foreach (DataRow row in ragTable.Rows)
        {
            if (!newTable.Columns.Cast<DataColumn>().Any(column => column.ColumnName.Equals(row[6].ToString())))
            {
                var newColumn= new DataColumn(row[6].ToString());
                newTable.Columns.Add(newColumn);
            }
        }
        return newTable;
    }

我一直在尽我所能,创建一个新的列,如var newColumn = new DataColumn(row [6] .ToString(),typeof(Bitmap)); /转换为图像并在添加到DataTable之前放置/更改列的数据类型...但是没有运气...我只需要正确的方法从Properties.Resources获取图像并将其放在DataTable上,将绑定到网格,图像将出现在gridview上...

任何帮助对我来说都很珍贵= D

1 回答

  • 1

    我不知道在GridView中本地渲染图像文件(包括BMP)的方法 .

    在您的情况下,我要做的是将该位图保存在虚拟目录中的本地文件中 . 获得文件名后,可以将该文件名绑定到GridView中的 ImageField 列 .

相关问题