none
DataList com Auto Generate Columns RRS feed

  • Pergunta

  • Olá, estou com um problema que é o seguinte:

    Carrego N número de colunas em um datatable que possui auto generate columns e possuo um datalist para carregar o que eu tenho na datatable

    Exemplo:

    dtlHorarios.DataSource = dtTranspose;
     dtlHorarios.DataBind();

    Porém na maioria das páginas que eu vejo na net, tudo tem de ser colocado no databinder.eval, no asp.net, mas eu não sei o número exato de colunas e nem como colocar no asp.net

    Primeira vez que estou utilizando o datalist, não sei quais métodos utilizar e nem como carregar as colunas.

    Grato!

    terça-feira, 22 de janeiro de 2013 16:56

Todas as Respostas

  • Boa noite Felipe, vamos lá.

    Cenário: Classe Usuario

    Se você estiver usando List<> ou seja List<Usuario> por exemplo, todas as propriedades da classe deve conter o item get;set; exemplo:

    public class Usuario
    {
    
    public int ID { get; set;}
    public int Nome{ get; set;}
    
    }


    Já na GridViews deve-se criar os DataField com o mesmo nome da propriedade da classe.. exemplo: 

    <asp:GridView ID="GridView1" AutoGenerateColumns="false" runat="server">
                <Columns>
                    <asp:BoundField DataField="ID" />
                    <asp:BoundField DataField="Nome" />
                </Columns>
            </asp:GridView>
    

    Ou se você estiver usando DataTable vindo de um SELECT * FROM, sete a propriedade como

    AutoGenerateColumns="false"

    e no campo DataField, escreva o mesmo nome da coluna do banco de dados.


    Se a resposta foi útil por favor qualifique. Italo Biguzi Duarte, Desenvolvedor ASP.NET C#, Italo.biguzzi@gmail.com

    quarta-feira, 23 de janeiro de 2013 01:40
  • Valeu, mas eu estou usando um datalist
    quarta-feira, 23 de janeiro de 2013 19:34
  • Cara,

    aspx:

            <asp:DataList ID="dtlTeste" runat="server" RepeatDirection="Horizontal" RepeatColumns="4">
            <ItemTemplate>
                <asp:Label ID="lblTeste2" runat="server" Text='<%# Bind("Coluna") %>'></asp:Label>
            </ItemTemplate>
            </asp:DataList>

    C#:

                DataTable dtTabela = new DataTable("Teste");
    
                dtTabela.Columns.Add("Coluna");
    
                for (int i = 0; i < 7; i++)
                {
                    dtTabela.NewRow();
                    dtTabela.Rows.Add("Teste " + i.ToString()); 
                }
    
                dtlTeste.DataSource = dtTabela;
                dtlTeste.DataBind();

    E você pode utilizar antes de dar o DataBind a propriedade:

    dtlTeste.RepeatColumns = 3;
    Indica a quantidade de colunas que ele deve repetir.


    Atenciosamente, Samuel dos Anjos

    quarta-feira, 23 de janeiro de 2013 19:41
  • Você me deu uma boa ideia para resolver.
    quinta-feira, 24 de janeiro de 2013 17:48