Array
(
)

Dúvida com array ou lista

Pjava
   - 26 set 2013

Fiz um array e carreguei uns valores para testar um gridview da DevEx. Minha dúvida é que está sendo criadas várias linhas(mesmo tamanho do array), ou seja, não estou sabendo informar que cada posição do array é uma coluna e não uma linha. Como eu faço isso? veja abaixo minha declaração. E tem mais, esses valores não estão aparecendo no grid. Tem as lionhas(deveria ser uma e são 15), mas com as colunas em branco. Uso o ASPxGridView(Da DEVEX)
#Código

string[] testaGrid = new string[15];

            testaGrid[0] = "";
            testaGrid[1] = ("407630448");
            testaGrid[2] = ("40301630");
            testaGrid[3] = ("Creatinina");
            testaGrid[4] = ("1");
            testaGrid[5] = ("Tabela Própria");
            testaGrid[6] = ("");
            testaGrid[7] = ("07/05/2013");
            testaGrid[8] = ("Glosado Parcial");
            testaGrid[9] = ("3,90");
            testaGrid[10] = ("3,75");
            testaGrid[11] = ("0,15");
            testaGrid[12] = ("0,10");
            testaGrid[13] = ("2564789-A00-016");
            testaGrid[14] = ("");

            gvItemNotaFiscal.DataSource = testaGrid;
            gvItemNotaFiscal.DataBind();

Joel Rodrigues
   - 26 set 2013

Este é o comportamento padrão. Para definir colunas, você deve criar uma lista, nem que seja de objetos dinâmicos. Por exemplo:
#Código

new {
Nome = "PJava",
Codigo = "123"
Etc = "etc"
}

Pjava
   - 26 set 2013

Joel, eu primeiro crio o array como eu fiz e depois dou um new ou como eu faço isso?

Joel Rodrigues
   - 26 set 2013

Você pode criar um array de objetos dinâmicos ou (melhor) criar uma lista (List<object>). E claro, vai adicionando os objetos em cada posição do array ou da lista.

Pjava
   - 26 set 2013

Eu então eu faço como, tipo:

string[] marray = new string[15]{nome="pjava",etc="etc"}; Assim dá erro comigo, tipo, Nome não está no atual contexto e etc....

Joel Rodrigues
   - 26 set 2013

Não, amigo.
Você vai criar um array de Object OU uma List<Object>, onde CADA ITEM vai ser um objeto dinâmico.
Para facilitar, crie uma classe com algumas propriedades, instancie alguns objetos e insira na lista.

Pjava
   - 26 set 2013

Ok, resolvi assim. O ASPxGridView tem uma propriedade FieldName que deve ser considerada. Eu estava não usando-a e por isso não consegui nada. Os campos dentro do vetor, correspondem cada FieldName de cada coluna. Dessa forma fino.

var testaGrid = new[] { new { COD_PRESTADOR = "407630448", COD_SERVICO = "40301630", NM_SERVICO="Creatinina", QTD_REALIZADA="1",TIPO_TABELA="Tabela Própria",
GRAU_PARTICIPACAO="", DT_REALIZACAO="07/05/2013",STATUS_ITEM="Glosado Parcial",VL_COBRADO="3,90",
VL_PAGO="3,75",VL_GLOSADO="0,15",VL_RECUPERADO="0,10",NR_NOTAFISCAL="2564789-A00-016"} };

gvItemNotaFiscal.DataSource = testaGrid;
gvItemNotaFiscal.DataBind();

Joel Rodrigues
   - 26 set 2013

No fim das contas, o que você fez foi criar um vetor com um objeto dinâmico. Os campos são do objeto e não do vetor.
Ou seja, tem um vetor com 1 item e esse item tem várias propriedades que representam as colunas, exatamente como eu lhe disse.
Que bom que deu certo, estou concluindo o tópico.