none
DataList RRS feed

  • Pergunta

  • Pessoal, boa tarde

    Eu tenho um DataList que traz o meu cadastro de produtos. Nele eu tenho um label que é o código do produto (primary key no banco).

    Gostaria de clicar nesse label ou outro lugar ou ainda ver qual a melhor forma de chamar a pagina "cadastro.aspx" com os dados do produto.

    É a primeira vez que utilizo esse componente.

    Obrigado.

    segunda-feira, 18 de fevereiro de 2013 18:32

Respostas

  • Cara,

    Utileze o evento Item_Command do próprio Datalist. Tente fazer da forma abaixo ao invés do DataKeys:

    Aspx:

            <asp:DataList ID="DataList1" runat="server" onitemcommand="DataList1_ItemCommand">
                <ItemTemplate>
                    <asp:Label ID="Codigo" runat="server" Visible="false" CommandName='<%# Eval("ESTCOD") %>'></asp:Label>
                </ItemTemplate>
            </asp:DataList>

    Perceba que acrescentei uma label a mais para ter onde colocar o "ESTCOD", porém deixei invisível a mesma.

    Depois,

    C#:

            protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
            {
                string strTeste = e.CommandName;
            }


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 22 de fevereiro de 2013 17:19

Todas as Respostas

  • Poderia reformular sua pergunta

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    segunda-feira, 18 de fevereiro de 2013 18:48
    Moderador
  • Seilor, boa tarde

    Eu coloquei um datalist numa página com o resultado de uma pesquisa feita pelo usuário.

    Por exemplo: se ele pesquisar por canetas, o datalist virá com todos os produtos relacionados à caneta.

    Agora preciso que ele clique no Datalist, no item que ele procura e seja redirecionado para a página de cadastros (cadastros.apsx) onde, o parâmetro para carregar as informações será o código do produto que já está vinculado no resultado do Datalist. 

    segunda-feira, 18 de fevereiro de 2013 20:02
  • Cara,

    Você pode utilizar o evento Item_Command do próprio Datalist.


    Atenciosamente,

    Samuel dos Anjos


    segunda-feira, 18 de fevereiro de 2013 22:41
  • E como seria a utilização desse comando ?
    terça-feira, 19 de fevereiro de 2013 18:20
  • Eu quero apenas clicar num item qualquer do Datalist e ele me redirecionar para a pagina de cadastros.

    Usei o comando abaixo e não deu certo ...

            string estcod = DataList1.DataKeys[e.Item.ItemIndex].ToString();
            Session["estcod"] = estcod;
            Server.Transfer("cadastro.aspx"); 


    terça-feira, 19 de fevereiro de 2013 18:41
  • Daniel, toda vez que você for popular o DataList, para cada linha, pode ser associado dois valores, o "key" e "value". No caso para cada linha da lista, existe o Valor que aparece e o valor que está por trás daquele item, que seria sua referência. Se o código abaixo não deu certo, é porque provavelmente você não populou o DataList da maneira mais adequada.

    Por favor, poste o código de como você preenche seu DataList.


    Ao infinito e além!

    terça-feira, 19 de fevereiro de 2013 18:49
  • Prezado Fábio,

    Meu cenário é o seguinte:

    a)página de pesquisa

    b) página com os resultados

    c) página com o cadastro do produto

    No item "b", O meu datalist é carregado através de uma "conection string" feita a partir do sqldatasource colocado na página de resultados.

    O sql que carrega o datalist é simples ( select * from estoque where estcod = 1) pois utilizei o mesmo apenas criar o layout dentro do datalist.

    O sql que carrega o datalist pra valer é feito dinamicamente com base num parâmetro vindo da pesquisa.

    public partial class result : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        { 

    string sql = "";

    sql = "select * from estoque e where e.estcod  = '" +(string)Session["search"]+ "' group by e.estcod ";

                }
                SqlDataSource1.SelectCommand = sql;         

                Server.Transfer("cadastros.aspx");
        }


    terça-feira, 19 de fevereiro de 2013 19:06
  • Quando você for no DataList, e atribuir o SqlDataSource1 ao seu DataSource, você pode escolher qual campo irá aparecer no DataList e qual campo será o DataKey do DataList.

    Poste o código da aba Design para te ajudarmos melhor.


    Ao infinito e além!

    terça-feira, 19 de fevereiro de 2013 19:13
  • Boa tarde Fábio,

    Segue o código

    <%@ Page Title="" Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="result.aspx.cs" Inherits="result" %>

    <asp:Content ID="Content1" ContentPlaceHolderID="head" Runat="Server">
        <style type="text/css">
            .style11
            {
                width: 100%;
            }
            .style12
            {
                width: 439px;
            }
            .style13
            {
                text-align: center;
            }
            .style14
            {
                text-align: center;
                width: 61px;
            }
            .style15
            {
                text-align: center;
                width: 46px;
            }
            .style16
            {
                text-align: center;
                width: 61px;
                font-weight: bold;
                font-size: medium;
            }
            .style17
            {
                text-align: center;
                width: 46px;
                font-size: medium;
                font-weight: bold;
            }
            .style18
            {
                text-align: center;
                font-weight: bold;
                font-size: medium;
                width: 43px;
            }
            .style19
            {
                text-align: center;
                width: 43px;
            }
        </style>
    </asp:Content>
    <asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
        <div id="internal-content-container" 
            style="margin: 0px auto; padding: 0px; width: 960px; color: rgb(51, 51, 51); font-family: Arial, Helvetica, sans-serif; font-size: 14px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: 20px; orphans: 2; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
            <div id="internal-column-wrapper" 
                style="margin: 0px; padding: 0px; float: left; width: 960px;">
                <div id="internal-main" 
                    style="margin: 0px; padding: 10px 25px 10px 0px; background-color: rgb(255, 255, 255);">
                    <p class="titulo" style="margin: 0px; padding: 0px;">
                        &nbsp;</p>
                                    <br style="margin: 0px; padding: 0px;" />
                    <asp:DataList ID="DataList1" runat="server" DataKeyField="ESTCOD" 
                        DataSourceID="SqlDataSource1">
                        <ItemTemplate>
                             
        href="local.aspx" 
        
                                
                                
                                
                                
                                style="color: rgb(80, 46, 103); text-decoration: initial; outline-width: 0px; float: left; font-family: Helvetica, Arial, Verdana, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px;">
                            <img border="0" 
         
        
                                
                                
                                
                                
                                style="border: 1px solid rgb(204, 204, 204); border-top-left-radius: 3px; border-top-right-radius: 3px; border-bottom-right-radius: 3px; border-bottom-left-radius: 3px; padding: 2.078125px; background-color: rgb(255, 255, 255); background-repeat: initial initial; height: 110px; width: 135px;" /></a><div class="biz-info" 
        
                                
                                
                                
                                style="float: left; margin: 0px; padding: 0px; width: 581px; color: rgb(102, 102, 102); font-family: Helvetica, Arial, Verdana, sans-serif; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: left; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; height: 104px;">
                                <table class="style11">
                                    <tr>
                                        <td class="style12">
                                            <a class="name" href="local.aspx" 
                                                
                                                
                                                style="color: rgb(80, 46, 103); text-decoration: initial; outline-width: 0px; font-weight: bold; font-size: 14px;">
                                            <asp:Label ID="Produto" runat="server" Text='<%# Eval("PRODUTO") %>'></asp:Label>
                                            </a>
                                        </td>
                                        <td colspan="6" style="text-align: center">
                                            Quem está aqui</td>
                                    </tr>
                                    <tr>
                                        <td class="style12">
                                            &nbsp;<asp:Label ID="Descrição" runat="server" Text='<%# Eval("DESCRICAO") %>'></asp:Label>
                                            &nbsp;
                                        </td>
                                        <td class="style13">
                                            &nbsp;</td>
                                        <td class="style13">
                                            &nbsp;</td>
                                        <td class="style13">
                                            &nbsp;</td>
                                    </tr>
                                    <tr>
                                        <td class="style12">
                                            <span class="light small" style="font-size: 11px; color: rgb(136, 136, 136);">
                                            <div class="icon_reserva phone_icon" 
                                                
                                                
                                                
                                            </div>
                                            <span class="Apple-converted-space">&nbsp;</span><asp:Label 
                                                ID="almoxarifado" runat="server" 
                                                Text='<%# Eval("ALMOX") %>'></asp:Label>
                                            <span class="biz_mouseov_bot" 
                                                style="padding: 0px 4px; color: rgb(204, 204, 204);">•</span><span 
                                                class="Apple-converted-space">&nbsp;</span><a 
                                                
                                                
                                                
                                                
                                                style="color: rgb(103, 138, 189) !important; text-decoration: initial; outline-width: 0px;">Atualizar 
                                            </a><span class="Apple-converted-space">&nbsp;</span><span 
                                                class="biz_mouseov_bot" 
                                                style="padding: 0px 4px; color: rgb(204, 204, 204);">•</span><span 
                                                class="Apple-converted-space">&nbsp;</span><a 
                                                href="www.google.com" 
                                                
                                                
                                                
                                                style="color: rgb(103, 138, 189) !important; text-decoration: initial; outline-width: 0px;">Outros</a><span 
                                                class="Apple-converted-space">&nbsp;</span><span class="biz_mouseov_bot" 
                                                style="padding: 0px 4px; color: rgb(204, 204, 204);">•</span><asp:Label 
                                                ID="Label3" runat="server" Text='<%# Eval("ESTCOD") %>'></asp:Label>
                                            </span>
                                        </td>
                                        <td class="style16">
                                            39</td>
                                        <td class="style17">
                                            11</td>
                                        <td class="style18">
                                            21</td>
                                        <td class="style13">
                                            &nbsp;</td>
                                        <td class="style13">
                                            &nbsp;</td>
                                        <td class="style13">
                                            &nbsp;</td>
                                    </tr>
                                </table>
                            </div>
                        </ItemTemplate>
                    </asp:DataList>
                    <asp:SqlDataSource ID="SqlDataSource1" runat="server" 
                        ConnectionString="<%$ ConnectionStrings:DataConnectionString %>" SelectCommand="select * from produtos
    where procod &lt;= 1


    "></asp:SqlDataSource>
                    
    </asp:Content>

    terça-feira, 19 de fevereiro de 2013 19:38
  • Eu quero apenas clicar num item qualquer do Datalist e ele me redirecionar para a pagina de cadastros.

    Usei o comando abaixo e não deu certo ...

            string estcod = DataList1.DataKeys[e.Item.ItemIndex].ToString();
            Session["estcod"] = estcod;
            Server.Transfer("cadastro.aspx"); 


    Use  response.redirect

    Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC

    quarta-feira, 20 de fevereiro de 2013 16:10
    Moderador
  • Não funcionou
    quinta-feira, 21 de fevereiro de 2013 13:50
  • string estcod = DataList1.Datakeys[e.item.ItemIndex].ToString()  não consegue pegar indice que será o parâmetro para a outra tela.

    Onde devo colocar esse comando para que eu consiga pegar o id e depois fazer o redirecionamento da página ?

    quinta-feira, 21 de fevereiro de 2013 13:52
  • Cara,

    Utileze o evento Item_Command do próprio Datalist. Tente fazer da forma abaixo ao invés do DataKeys:

    Aspx:

            <asp:DataList ID="DataList1" runat="server" onitemcommand="DataList1_ItemCommand">
                <ItemTemplate>
                    <asp:Label ID="Codigo" runat="server" Visible="false" CommandName='<%# Eval("ESTCOD") %>'></asp:Label>
                </ItemTemplate>
            </asp:DataList>

    Perceba que acrescentei uma label a mais para ter onde colocar o "ESTCOD", porém deixei invisível a mesma.

    Depois,

    C#:

            protected void DataList1_ItemCommand(object source, DataListCommandEventArgs e)
            {
                string strTeste = e.CommandName;
            }


    Atenciosamente, Samuel dos Anjos

    sexta-feira, 22 de fevereiro de 2013 17:19
  • Obrigado Samuel ... funcionou certinho
    terça-feira, 26 de fevereiro de 2013 11:14