1

画像を 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に配置する正しい方法が必要なだけです.グリッドにバインドされ、画像がグリッドビューに表示されます...

今、どんな助けも私にとって貴重です = D

4

2 に答える 2

1

GridView で画像ファイル (BMP を含む) をネイティブにレンダリングする方法を知りません。

あなたの場合、私はそのビットマップを仮想ディレクトリのローカル ファイルに保存します。ファイル名を取得したら、そのファイル名をImageFieldGridView の列にバインドできます。

于 2013-07-03T16:55:22.423 に答える