REPEATER

GUSTAVOCANALLI 25/03/2011 20:41:18
#369209
BOA TARDE...TO USANDO O COMPONENTE REPEATER COM O SEGUINTE CODIGO

HTML:

<asp:Repeater id=[Ô]rpt_categoria[Ô] runat=[Ô]server[Ô] OnItemDataBound=[Ô]Categoria[Ô]>
<ItemTemplate>
<asp:HiddenField ID=[Ô]CodigoCategoria[Ô] runat=[Ô]server[Ô] Value=[ô]<%#DataBinder.Eval(Container.DataItem,[Ô]CAT_IN_CODIGO[Ô]) %>[ô] />
<h5><%#DataBinder.Eval(Container.DataItem, [Ô]CAT_ST_NOME[Ô])%></h5>

<table width=[Ô]100%[Ô]>
<asp:Repeater id=[Ô]rpt_produto[Ô] runat=[Ô]server[Ô]>
<ItemTemplate>
<tr>
<asp:HiddenField ID=[Ô]CodigoProduto[Ô] runat=[Ô]server[Ô] Value=[ô]<%#DataBinder.Eval(Container.DataItem,[Ô]PRO_IN_CODIGO[Ô]) %>[ô] />
<td width=[Ô]11%[Ô]>
<a href=[Ô]administracao/cadastro/categoria/index.aspx[Ô]>
<img src=[Ô]administracao/images/produtos/produto1.jpg[Ô] height=[Ô]66[Ô] width=[Ô]93[Ô]>
</a>
</td>
<td>
<a href=[Ô]administracao/cadastro/categoria/index.aspx[Ô]>
<%#DataBinder.Eval(Container.DataItem, [Ô]PRO_ST_NOME[Ô])%>
</a>
</td>
<td width=[Ô]8%[Ô]>
<a href=[Ô]administracao/cadastro/categoria/index.aspx[Ô]>
R$ <%#DataBinder.Eval(Container.DataItem, [Ô]PRO_RE_VENDA[Ô])%>
</a>
</td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
</ItemTemplate>
</asp:Repeater>

CODIGO:

Imports System.Data

Partial Class cardapio
Inherits System.Web.UI.Page

Dim SQL As String
Dim Dados As New Dados()
Dim Tabela As DataTable

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not IsPostBack Then
Me.CarregaRepeater()
End If
End Sub

Protected Sub CarregaRepeater()
Try
Me.SQL = [Ô]SELECT DISTINCT CAT.CAT_IN_CODIGO, CAT.CAT_ST_NOME FROM PIZ_CATEGORIA CAT, PIZ_PRODUTO PRO WHERE PRO.CAT_IN_CODIGO = CAT.CAT_IN_CODIGO;[Ô]
Me.Tabela = Dados.RetornaTabela(Me.SQL)

Me.rpt_categoria.DataSource = Me.Tabela
Me.rpt_categoria.DataBind()
Catch ex As Exception
Me.Mensagem([Ô] [Ô] & [Ô]Ocorreu um Erro ao Carregar os Produtos[Ô])
End Try
End Sub

Protected Sub Categoria(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.RepeaterItemEventArgs)
If e.Item.ItemType = ListItemType.Item Or e.Item.ItemType = ListItemType.AlternatingItem Then
Dim CodigoCategoria As Integer = CInt(CType(e.Item.FindControl([Ô]CodigoCategoria[Ô]), HiddenField).Value)

Me.SQL = [Ô]SELECT PRO_IN_CODIGO, PRO_ST_NOME, PRO_RE_VENDA FROM PIZ_PRODUTO WHERE CAT_IN_CODIGO = [Ô] & CodigoCategoria & [Ô];[Ô]
Me.Tabela = Dados.RetornaTabela(Me.SQL)

Dim rpt As Repeater = CType(e.Item.FindControl([Ô]rpt_produto[Ô]), Repeater)

rpt.DataSource = Me.Tabela
rpt.DataBind()
End If
End Sub

Protected Sub Mensagem(ByVal Mensagem As String)
Dim pnl_mensagem As New Panel
Dim img_mensagem As New Image
Dim lbl_mensagem As New Label

img_mensagem.ImageUrl = [Ô]~/administracao/images/botoes/mensagem.png[Ô]
lbl_mensagem.Text = Mensagem
Me.permissao.Controls.Add(pnl_mensagem)
pnl_mensagem.Controls.Add(img_mensagem)
pnl_mensagem.Controls.Add(lbl_mensagem)
pnl_mensagem.GroupingText = [Ô]Cadastro[Ô]
End Sub
End Class

TO QUERENDO PEGAR O CODIGO DO PRODUTO DE ACORDO COM A LINHA QUE O USUÁRIO CLICAR, MAS NAO ESTA DANDO CERTO.

SE EU USAR O REPEATER DE PRODUTO DIRETO (SEM O DA CATEGORIA) EU CONSIGO NORMAL.

VOCES PODEM ME AJUDAR?
TECLA 25/03/2011 21:58:07
#369211
Resposta escolhida
Como o usuário seleciona um registro?
Clicando em um botão ou em um link?
GUSTAVOCANALLI 25/03/2011 22:45:57
#369215
EM UM BOTÃO.
TIPO...ELE CLICA NO BOTAO E PEGA O NUMERO DO PRODUTO.
ATé CONSEGUI FAZER COM ESSE CODIGO:

Dim CodigoProduto As Integer = CInt(CType(e.Item.FindControl([Ô]CodigoProduto[Ô]), HiddenField).Value)
Response.Redirect([Ô]~/carrinho.aspx?Cod=[Ô] & CodigoProduto)

MA SÓ QUANDO PUXA O REPEATER DIRETO (SEM A CATEGORIA)
TECLA 25/03/2011 23:07:13
#369216
Experimenta usar a propridade COMMANDARGUMENT do botão para passar o código do produto ao método.
GUSTAVOCANALLI 25/03/2011 23:38:39
#369220
NAO ENTENDI.

COMO EU USO ESSA PROPRIEDADE?
TECLA 26/03/2011 11:10:36
#369243
Segue um exemplo:

<asp:Button ID=[Ô]Button1[Ô] runat=[Ô]server[Ô] Text=[Ô]Selecionar[Ô] CommandArgument=[ô]<%# DataBinder.Eval(Container.DataItem, [Ô]Codigo[Ô])%>[ô] />


Desta forma, você consegue recuperar QUALQUER INFORMAÇÃO usando a propridade CommandArgument do Button. Se você quiser, podes até concatenar várias informações (ex .Código, Valor, Descrição...) usando a mesma propridade.
GUSTAVOCANALLI 26/03/2011 13:05:53
#369258
ENTAO.

O PROBLEMA é QUE EU NAO TO CONSEGUINDO PUXAR ELE NA TELA.
PQ QDO TRATO O CODIGO [Ô]ITEMCOMMAND[Ô] DO REPEATER CATEGORIA, NAO ACONTECE NADA.
Tópico encerrado , respostas não são mais permitidas