none
Imagem no GridView RRS feed

  • Pergunta

  • Pessoal,

    Mais um problema, estou com o gridview mais não consigo fazer a imagem aparecer e está apresentando esse erro.

    Erro de Servidor no Aplicativo '/'.

    imagens/check.jpg

    Descrição: Ocorreu uma exceção sem tratamento durante a execução da atual solicitação da Web. Examine o rastreamento de pilha para obter mais informações sobre o erro e onde foi originado no código. 

    Detalhes da Exceção: System.IO.FileNotFoundException: imagens/check.jpg

    Erro de Origem: 
    Exceção sem tratamento foi gerada durante a execução da atual solicitação da Web. As informações relacionadas à origem e ao local da exceção podem ser identificadas usando-se o rastreamento de pilha de exceção abaixo.

    Rastreamento de Pilha: 
    [FileNotFoundException: imagens/check.jpg]
       System.Drawing.Image.FromFile(String filename, Boolean useEmbeddedColorManagement) +770042
       Proprietaria.Cadastro_ResultCNAE.dgv_RowDataBound(Object sender, GridViewRowEventArgs e) in C:\Sistemas\Proprietaria\Proprietaria\Cadastro_ResultCNAE.aspx.cs:114
       System.Web.UI.WebControls.GridView.CreateRow(Int32 rowIndex, Int32 dataSourceIndex, DataControlRowType rowType, DataControlRowState rowState, Boolean dataBind, Object dataItem, DataControlField[] fields, TableRowCollection rows, PagedDataSource pagedDataSource) +314
       System.Web.UI.WebControls.GridView.CreateChildControls(IEnumerable dataSource, Boolean dataBinding) +4780
       System.Web.UI.WebControls.CompositeDataBoundControl.PerformDataBinding(IEnumerable data) +95
       System.Web.UI.WebControls.GridView.PerformDataBinding(IEnumerable data) +19
       System.Web.UI.WebControls.DataBoundControl.OnDataSourceViewSelectCallback(IEnumerable data) +222
       System.Web.UI.WebControls.DataBoundControl.PerformSelect() +313
       Proprietaria.Cadastro_ResultCNAE.Page_Load(Object sender, EventArgs e) in C:\Sistemas\Proprietaria\Proprietaria\Cadastro_ResultCNAE.aspx.cs:68
       System.Web.UI.Control.LoadRecursive() +71
       System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3178
    


    Informações sobre a Versão: Microsoft .NET Framework Versão:4.0.30319; Versão do ASP.NET:4.0.30319.34274

    Segue meu código.

    protected void dgv_RowDataBound(object sender, GridViewRowEventArgs e)
            {
                System.Drawing.Image img;
                System.Drawing.Image img1;

                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    Image ibtn = new Image();
                    ibtn.ID = "imgPicture";
                    e.Row.Cells[6].Controls.Add(ibtn);


                    string Amostra_fixa = e.Row.Cells[6].Text;
                    string Ativo = e.Row.Cells[7].Text;

                    Image imgPicture = (Image)e.Row.FindControl("imgPicture");
                    if ((imgPicture != null))
                    {
                        img = null;

                        if (Amostra_fixa == "0")
                        {
                            //Transforma o array de byte em base64 e atribui o controle Image à coluna
                            img = System.Drawing.Image.FromFile(@"imagens/cross.png");
                        }
                        else
                        {
                            //Transforma o array de byte em base64 e atribui o controle Image à coluna
                            img = System.Drawing.Image.FromFile(@"imagens/check.jpg");
                        }
                        byte[] imgArray = imageToByteArray(img);
                        string base64String = Convert.ToBase64String(imgArray, 0, imgArray.Length);
                        imgPicture.ID = "imgPicture";
                        imgPicture.ImageUrl = "data:image/png;base64," + base64String;
                    }

                    Image ibtn1 = new Image();
                    ibtn1.ID = "imgPicture1";
                    e.Row.Cells[7].Controls.Add(ibtn1);

                    Image imgPicture1 = (Image)e.Row.FindControl("imgPicture1");

                    if ((imgPicture != null))
                    {
                        img = null;

                        if (Amostra_fixa == "0")
                        {
                            //Transforma o array de byte em base64 e atribui o controle Image à coluna
                            img1 = System.Drawing.Image.FromFile(@"imagens/cross.png");
                        }
                        else
                        {
                            //Transforma o array de byte em base64 e atribui o controle Image à coluna
                            img1 = System.Drawing.Image.FromFile(@"imagens/check.jpg");
                        }
                        byte[] imgArray1 = imageToByteArray(img1);
                        string base64String1 = Convert.ToBase64String(imgArray1, 0, imgArray1.Length);
                        imgPicture1.ID = "imgPicture1";
                        imgPicture1.ImageUrl = "data:image/png;base64," + base64String1;
                    }
                }
            }

    public byte[] imageToByteArray(System.Drawing.Image imageIn)
            {
                MemoryStream ms = new MemoryStream();
                imageIn.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg);
                return ms.ToArray();
            }


    segunda-feira, 10 de abril de 2017 13:15

Respostas

  • Acrescente um Server.MapPath para buscar o caminho completo para os arquivos. Exemplo:

    System.Drawing.Image.FromFile(Server.MapPath("imagens\\cross.png"));


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    segunda-feira, 10 de abril de 2017 18:21

Todas as Respostas

  • Acrescente um Server.MapPath para buscar o caminho completo para os arquivos. Exemplo:

    System.Drawing.Image.FromFile(Server.MapPath("imagens\\cross.png"));


    If you found this post helpful, please "Vote as Helpful". If it actually answered your question, remember to "Mark as Answer".

    Se achou este post útil, por favor clique em "Votar como útil". Se por acaso respondeu sua dúvida, lembre de "Marcar como Resposta".

    segunda-feira, 10 de abril de 2017 18:21
  • Juliano,

    Funcionou perfeito.

    Obrigado,

    Filipe Magalhães.

    segunda-feira, 10 de abril de 2017 19:15