Usuário com melhor resposta
DataList

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.
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
- Sugerido como Resposta Samuel Rodrigues dos Anjos sexta-feira, 22 de fevereiro de 2013 17:20
- Marcado como Resposta Daniel Village terça-feira, 26 de fevereiro de 2013 11:13
Todas as Respostas
-
-
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.
-
Cara,
Você pode utilizar o evento Item_Command do próprio Datalist.
Atenciosamente,
Samuel dos Anjos
- Sugerido como Resposta Samuel Rodrigues dos Anjos segunda-feira, 18 de fevereiro de 2013 22:41
- Editado Samuel Rodrigues dos Anjos terça-feira, 19 de fevereiro de 2013 00:53
-
-
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");
-
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!
-
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");
}
-
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!
-
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;">
</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">
<asp:Label ID="Descrição" runat="server" Text='<%# Eval("DESCRICAO") %>'></asp:Label>
</td>
<td class="style13">
</td>
<td class="style13">
</td>
<td class="style13">
</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"> </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"> </span><a
style="color: rgb(103, 138, 189) !important; text-decoration: initial; outline-width: 0px;">Atualizar
</a><span class="Apple-converted-space"> </span><span
class="biz_mouseov_bot"
style="padding: 0px 4px; color: rgb(204, 204, 204);">•</span><span
class="Apple-converted-space"> </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"> </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">
</td>
<td class="style13">
</td>
<td class="style13">
</td>
</tr>
</table>
</div>
</ItemTemplate>
</asp:DataList>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:DataConnectionString %>" SelectCommand="select * from produtos
where procod <= 1
"></asp:SqlDataSource>
</asp:Content>
-
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");
Não esqueça de usar o componente </> na barra para posta seu código. Microsoft MCPD,MCTS,MCC
- Sugerido como Resposta Samuel Rodrigues dos Anjos quarta-feira, 20 de fevereiro de 2013 22:21
-
-
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 ?
-
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
- Sugerido como Resposta Samuel Rodrigues dos Anjos sexta-feira, 22 de fevereiro de 2013 17:20
- Marcado como Resposta Daniel Village terça-feira, 26 de fevereiro de 2013 11:13
-