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.