Forum
See question

Como inserir linhas manualmente numa PriGrelha?   

Duplicate
115 views
0
0
Duplicate.

This question already has an answer here: Adicionar linhas à prigrelha por código

Boas tardes.

Carregar dados para uma PriGrelha com base numa lista é fácil:

priGrelhaDocumentos.DataBind(lista);

Mas como inserir dados manualmente?

Tenho um caso especifico em que, depois de carregar a grelha com dados usando o método acima, preciso de adicionar várias linhas adicionais. Tentei o seguinte código sem sucesso:

            if (!lista.Vazia())
            {

                int row = priGrelhaDocumentos.NumeroRegistos ;
                

                while (!lista.NoFim())
                {
                    priGrelhaDocumentos.GRID_InsereLinhaEdicao(ref row);
                    //priGrelhaDocumentos.InsereLinhas(row);
                    priGrelhaDocumentos.SetGRID_SetValorCelula(row, "data", lista.Valor("Data").ToString());
                    priGrelhaDocumentos.SetGRID_SetValorCelula(row, "nif", lista.Valor("NIF").ToString());
                    priGrelhaDocumentos.SetGRID_SetValorCelula(row, "nome", lista.Valor("NomeEntidade").ToString());
                    priGrelhaDocumentos.Grid_SetForeColor("data", "IdDocPrimavera", row, row, System.Drawing.Color.Red);

                    priGrelhaDocumentos.NumeroMaxRegistosSemPag++;
                    priGrelhaDocumentos.NumeroRegistos++;

                    row++;

                    lista.Seguinte();
                }

    priGrelhaDocumentos.PerformAutoScale();

            }

Certamente há maneira de adicionar linhas manualmente sem fazer o Data Binding?

Faça login para poder traduzir
Integration
V10
Marked as spam
Created 4 years and 6 months ago jonatas
j
jonatas Iniciante
Comments
Penso que é isto que queres.
4 years and 6 months ago
sergiosereno
    Desculpa a demora Sérgio mas queria testar bem isto antes de responder. Parece-me ser o que preciso mas simplesmente não consigo que funcione. ``` int row = 1; while (theData.Read()) { var numRows = priGrelha1.Grelha.DataRowCnt; Funcionario = theData["Funcionario"].ToString(); CCusto = theData["CCusto"].ToString(); Percentagem = Convert.ToDouble(theData["Percentagem"].ToString()); Mes = Convert.ToInt32(theData["Mes"].ToString()); Ano = Convert.ToInt32(theData["Ano"].ToString()); priGrelha1.GRID_InsereLinhaEdicao(ref row); priGrelha1.SetGRID_SetValorCelula(row, "funcionario", Funcionario); priGrelha1.SetGRID_SetValorCelula(row, "ccusto", CCusto); priGrelha1.SetGRID_SetValorCelula(row, "percentagem", Percentagem); priGrelha1.SetGRID_SetValorCelula(row, "mes", Mes); priGrelha1.SetGRID_SetValorCelula(row, "ano", Ano); //row++; } theData.Close(); ``` O while corre até ao fim sem problemas mas "visualmente" nada acontece. É suposto chamar algum método para atualizar depois de adicionar as linhas? Com relação ao row experimentei também incrementar a cada passagem para, assumi eu, adicionar as novas linhas sempre no fim mas assim que passa para row = 2 dá erro de "out of bound". Não percebo o que estou a fazer mal
    4 years and 6 months ago
    jonatas
      OK já percebi, para adicionar linhas desta forma a Grid tem de estar em modo de edição! Isso significa então que para ter uma grid em modo de consulta só com databind? Ou é possivel adicionar os dados que queremos e depois voltar a meter a grid em modo de consulta?
      4 years and 6 months ago
      jonatas