none
Header do gridview desaparece quando não traz registro via procedure RRS feed

  • Pergunta

  • Pessoal

    Tenho um gridview que retorna uma consulta de uma procedure. Porém ao executar a procedure que não retorna nenhum valor o Header da grid desaparece. Gostaria que mesmo sem registro o Header não desaparece-se

    GridView com todos os resultado sem filtrar

     Após filtrar o GridView fica sem resultado, porém sem o Header da Grid

    sexta-feira, 11 de outubro de 2013 19:08

Respostas

  • Achei essa solução Show Header/Footer when Gridview is Blank VB.net que ficou melhor no meu codigo.

    O Código ficou assim para quem precisar:

    DataSet ds = bs.CarregarGrid(parametro 1,.....);
    
                if(ds.Tables[0].Rows.Count > 0)
                {
                    grdDescicao.DataSource = ds;
                    grdDescicao.DataBind();
                }
                else
                {
                    ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
                    grdDescicao.DataSource = ds;
                    grdDescicao.DataBind();
    
                    int columnCount = grdDescicao.Rows[0].Cells.Count;
                    grdDescicao.Rows[0].Cells.Clear();
                    grdDescicao.Rows[0].Cells.Add(new TableCell());
                    grdDescicao.Rows[0].Cells[0].ColumnSpan = columnCount;
                    grdDescicao.Rows[0].Cells[0].ForeColor = Color.Red;
                    grdDescicao.Rows[0].Cells[0].Text = mensagem.Mensagem1;
    
                }


    sexta-feira, 11 de outubro de 2013 20:10

Todas as Respostas

  • Altere a propriedade da grid ShowHeaderWhenEmpty para true

    SeuGrid.ShowHeaderWhenEmpty = true;

    Ou no modo design ou em .cs você que decide
    sexta-feira, 11 de outubro de 2013 19:29
  • Daniel

    obrigado por responder, mas eu esqueci de mencionar que estou trabalhando com o visual studio 2008 com o framework 3.5. Não tem essa propriedade no GridView, só existe a propriedade grid.ShowHeader

    sexta-feira, 11 de outubro de 2013 19:38
  • Entao voce verifica se o retorno de sua grid vier vazio voce cria uma linha sem nada somente pra mostrar tipo
    if (minhagrid.Rows.Count != 0)
    {
        minhagrid.DataSource = minhafontedados;
        minhagrid.DataBind();
    }
    else
    {
      //Other wise add a emtpy "New Row" to the datatable and then hide it after binding.
    
         minhagrid.Rows.Add(dtFunding.NewRow());
         minhagrid.DataSource = minhafontedados;
         minhagrid.DataBind();
         minhagrid.Rows[0].Visible = false;
    }
    Fonte de exemplos : http://stackoverflow.com/questions/354369/gridview-show-headers-on-empty-data-source
    sexta-feira, 11 de outubro de 2013 19:56
  • Achei essa solução Show Header/Footer when Gridview is Blank VB.net que ficou melhor no meu codigo.

    O Código ficou assim para quem precisar:

    DataSet ds = bs.CarregarGrid(parametro 1,.....);
    
                if(ds.Tables[0].Rows.Count > 0)
                {
                    grdDescicao.DataSource = ds;
                    grdDescicao.DataBind();
                }
                else
                {
                    ds.Tables[0].Rows.Add(ds.Tables[0].NewRow());
                    grdDescicao.DataSource = ds;
                    grdDescicao.DataBind();
    
                    int columnCount = grdDescicao.Rows[0].Cells.Count;
                    grdDescicao.Rows[0].Cells.Clear();
                    grdDescicao.Rows[0].Cells.Add(new TableCell());
                    grdDescicao.Rows[0].Cells[0].ColumnSpan = columnCount;
                    grdDescicao.Rows[0].Cells[0].ForeColor = Color.Red;
                    grdDescicao.Rows[0].Cells[0].Text = mensagem.Mensagem1;
    
                }


    sexta-feira, 11 de outubro de 2013 20:10