Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Mais uma vez pessoal venho pedir a ajuda de você para solucionar um problema. Preciso montar uma agenda de compromissos, mas essas deve ser aninhada por mês/ano em ordem crescente. Os registros filtrados devem aparecer também em ordem crescente, onde os aniversariantes aparecem antes dos compromissos.
Numa filtragem por mês, já consegui mostrar os aniversariantes antes dos compromissos. Mas não estou conseguindo fazê-lo em grupo. Criei um algoritmo que consegue montar essa agenda para mim, mas consegui coloca-la funcionar apenas dentro de um textbox com multiplas linhas. O codigo segue abaixo:
public void agruparDados()
{
StringBuilder sb = new StringBuilder();
entRAM ram = new entRAM();
var objram = from p in ram.agendacompromissos.ToList()
where p.agcAgenda != 2
orderby p.agcHoraInicio ascending
//grupo pegando mm-aaaa do registro
group p by p.agcDataInicio.ToString().Substring(6, 4) + p.agcDataInicio.ToString().Substring(3, 2) into grupo
select new
{
mesAno = grupo.Key,
dia = grupo
};
foreach (var teste in objram)
{
sb.AppendLine("Periodo: " + teste.mesAno);
sb.AppendLine("-------------------------------------------");
foreach (var teste01 in teste.dia)
{
sb.AppendLine("- " + teste01.agcDataInicio + " - " + teste01.agcAssunto);
}
sb.AppendLine(" ");
}
TextBox1.Text = sb.ToString();
}
Na execução desse algoritmo obtenho o seguinte resultado: Filtragem por período em ordem crescente, mas os registros aninhados não ficam em ordem.
>
Periodo: 2011 08
-------------------------------------------
Periodo: 2011 09
-------------------------------------------
Periodo: 2021 08
-------------------------------------------
Esse resultado foi exibido dentro do textbox após ser armazenado num StringBuilder, como disse, mas precisava portanto, que o resultado foi enviado para o repeater que possuo em minha página, pois nele estão configurado a exibição dos dados conforme imagem que atribuirei ao fim desse post. Os campos no repeater estão no formato:
<%#Eval("assunto") %>
Tentei colocar no repeater componentes label e atribuir valor a eles no code behind por exemplo
lblAssunto.text = obj.assunto;
, mas não consegui acessar o label via code, pois ele está dentro do repeater. Se alguem souber e puder esclarecer como acessar componente dentro do repeater agradeço tb.
Em resumo, depois desse testamento todo, preciso da ajuda de vocês para montar essa consulta LINQ (GROUP) de forma que eu consiga apresentar os registros num repeater aninhado. A idéia é como da figura que segue:
/applications/core/interface/imageproxy/imageproxy.php?img=http://padresergio.com/imagens_ram/novoSite/compromissosCelular.gif&key=3a77f369cdc17ac7cb4978291cb8c352b7a23eac6239682289def8184278ac47" alt="compromissosCelular.gif" />
Agradeço a todos que se empenharem em me ajudarem. ;)
Carregando comentários...