Fórum Exibindo dados na Vertical #9204

09/09/2009

0

Prezados;   Preciso montar uma consulta que exiba os dados de alunos de uma determinada turma e as notas obtidas nas provas de cada matéria que estuda.   Seria algo assim:   Nome do Aluno          Materia1  Materia2 MateriaN João das Couves            5,0          7,0            8,0 Pedro de Souza              6,0          5,5            6,0 Rosangela da Silva         2,0          3,0            5,0     A tabela acima possui os seguintes campos: CodAluno, CodMateria, Media (podendo um aluno fazer N matérias).   Existe algum objeto que eu possa utilizar que me possibilite fazer essa consuta?   Indemberge
Indemberge Santos

Indemberge Santos

Responder

Posts

09/09/2009

Fabio Mans

Utilize o GridView ou Repeater. Faça o seguinte, monte o HTML em seguida coloque os valores em um TemplateColumn.  Sua tabela será criado na área em negrito.


Veja um exemplo


 
                            <asp:Repeater ID="OcorrenciaRpt" runat="server">
                           
                           
                             <HeaderTemplate>
                            <table border="0" cellpadding="2" cellspacing="0" width="100%" style="font: verdana">
                        </HeaderTemplate>
                        <ItemTemplate>
                            <tr>
                                <td width="100%">
                                    <%# Eval("MatriculaInclusao")%>
                                    - <b>
                                    <%# Eval("FUNCIONARIO") %>
                                    </b>
                                </td>
                            </tr>
                            <tr>
                                <td width="100%">
                                    <%# DataBinder.Eval(Container.DataItem, "DATAINCLUSAO") %>
                                    <br />
                                    <%# DataBinder.Eval(Container.DataItem, "OCORRENCIANOME") %>
                                    </b>
                                </td>
                            </tr>
                        </ItemTemplate>
                        <FooterTemplate>
                            </table>
                        </FooterTemplate>
                           
                           
                           
                           
                           
                            </asp:Repeater>

Fabio
Responder

Gostei + 0

14/09/2009

Indemberge Santos

Fábio;   Não entendi direito, eu não utilizei ainda o Repeater, você pode me explicar melhor?   Obrigado;   Indemberge
Responder

Gostei + 0

14/09/2009

Indemberge Santos

Fábio;   Na verdade eu me expressei mal no enunciado do chamado, não é "Exibindo dados na Vertical" e sim "Exibindo dados na Horizontal", ou seja, preciso exibir as notas de todas as matérias de alunos de uma determinada turma na horizontal.   Um abraço,   Indemberge
Responder

Gostei + 0

14/09/2009

Fabio Mans

Você já fez a Query, esta retornando os dados que você precisa?

Se sim, monta um HTML, sem se preocupar com os dados como você quer que fique seus dados. Assim que fizar me passo o HTML que te mostro.

Fabio
Responder

Gostei + 0

15/09/2009

Indemberge Santos

Fábio,   Segue abaixo meu código:       <asp:Repeater ID="RptMapao" runat="server">
        <HeaderTemplate>
            <table border="0" cellpadding="2" cellspacing="0" width="100%" style="font: verdana">
        </HeaderTemplate>
        <ItemTemplate>
            <tr>
                <td width="100%">
                    <%#Eval("CodAluno")%>
                    <%#Eval("Nome")%>
                </td>
            </tr>
            <tr>
                <td>                     <%#DataBinder.Eval(Container.DataItem, "Descricao")%>
                    <%#DataBinder.Eval(Container.DataItem, "MB1")%>
                    <%#DataBinder.Eval(Container.DataItem, "MB1Rv")%>
                </td>
            </tr>
        </ItemTemplate>
        <FooterTemplate>
            </table>
        </FooterTemplate>
    </asp:Repeater>
Os dados estão sendo exibidos assim:   312116 DANIT LEA LANDER 
Língua Portuguesa e Literatura 8,7 0 
312116 DANIT LEA LANDER 
Educação Física 8 0 
312116 DANIT LEA LANDER 
Artes 10 0 
312116 DANIT LEA LANDER 
Física 6,5 7,2 
312116 DANIT LEA LANDER 
Química 7 0 
312116 DANIT LEA LANDER 
Biologia 10 0 
312116 DANIT LEA LANDER 
Matemática e Lógica 8,8 0 
312116 DANIT LEA LANDER 
História 9 0 
312116 DANIT LEA LANDER 
Geografia 7,8 0 
312116 DANIT LEA LANDER 
Filosofia 10 0 
312116 DANIT LEA LANDER 
Sociologia 8,5 0 
312116 DANIT LEA LANDER 
Lingua Estrangeira 9 0      E eu gotaria que fosse algo assim, sendo que todos os dados em uma única linha:   312116 DANIT LEA LANDER  Língua Portuguesa e Literatura 8,7 0  Educação Física 8 0  Artes 10 0  Física 6,5 7,2  Química 7 0  Biologia 10 0 Matemática e Lógica 8,8 0 História 9 0  Geografia 7,8 0  Filosofia 10 0  Sociologia 8,5 0  Lingua Estrangeira 9 0    Gostaria de colocar umas imagens, mas deu erro na hora de fazer o upload...   Indemberge
Responder

Gostei + 0

16/09/2009

Indemberge Santos

Fábio;   Realizei vários testes utilizando: Repeater, DataList e Gridview. O único que consegui exibir os dados no horizontal mais ou menos como preciso foi o DataList, contudo ele exibiu os dados na horizontal continuamente.   Veja a imagem abaixo do Gridview:     Gostaria que ficasse assim: IBM, Nome, Componente1 (MB1, Rv1), Componente2 (MB1, Rv1), ComponenteN...   Deu pra entender?   Abraço,   Indemberge
Responder

Gostei + 0

16/09/2009

Fabio Mans

Veja um exemplo, o segredo é a tabela, monte um table com uma tr e um td.


protected void Page_Load(object sender, EventArgs e)
    {
        List<NovoAluno> lista = new List<NovoAluno>();

        lista.Add(new NovoAluno()
                      {
                          Ibm = "120299",
                          Nome = "JULINA MARTINS",
                          Componente = "Artes",
                          Mb1 = "0",
                          Rv1 = "0"
                      });


        lista.Add(new NovoAluno()
                      {
                          Ibm = "120299",
                          Nome = "JULINA MARTINS",
                          Componente = "História",
                          Mb1 = "9.8",
                          Rv1 = "0"
                      });


        lista.Add(new NovoAluno()
                      {
                          Ibm = "120295",
                          Nome = "RITA",
                          Componente = "Geografia",
                          Mb1 = "9.8",
                          Rv1 = "7"
                      });


        lista.Add(new NovoAluno()
                      {
                          Ibm = "120295",
                          Nome = "CLAUDIA",
                          Componente = "Geografia",
                          Mb1 = "9.8",
                          Rv1 = "7"
                      });


        Repeater1.DataSource = lista;
        Repeater1.DataBind();
    }





<%@ Page Language="C#" AutoEventWireup="true" CodeFile="ChamadoAluno.aspx.cs" Inherits="ChamadoAluno" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:Repeater ID="Repeater1" runat="server">
            <HeaderTemplate>
                <table border="0" cellpadding="2" cellspacing="0" width="100%" style="font: verdana">
            </HeaderTemplate>
            <ItemTemplate>
                <tr>
                    <td width="100%">
                        IBM
                        <%# Eval("IBM") %>
                        Nome
                        <%# Eval("Nome") %>
                        Componente
                        <%# Eval("Componente")%>
                        Mb1
                        <%# Eval("Mb1")%>
                        Rv1
                        <%# Eval("Rv1")%>
                        </b>
                    </td>
                </tr>
            </ItemTemplate>
            <FooterTemplate>
                </table>
            </FooterTemplate>
        </asp:Repeater>
    </div>
    </form>
</body>
</html>



Responder

Gostei + 0

16/09/2009

Indemberge Santos

Fábio; Estava pensando exatamente numa lógica parecida com a sua: pegar os dados do DataSet jogar num Array e depois passar pro objeto que está ná página aspx. Vou continuar nesta lógica e assim que concluir te dou um retorno. Obrigado! Indemberge
Responder

Gostei + 0

21/09/2009

Indemberge Santos

Fábio;   Podemos fechar o chamado.   Consegui resolver o problema criando meu DataTable da forma que precisava para exibir os dados.   Obrigado.   Indemberge
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar