Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

cintiadel

[Resolvido] loop no panel

Recommended Posts

ola pessoal tenho um panel de avisos, e gostaria q de acordo com o que esta cadastrado no banco ele desse um loop.

por exemplo se tem mais de um aviso cadastrado por cliente, ele deve exibir varios panels na tela cada um com um aviso.

conto com a ajuda de vcs...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca o Panel dentro de um repeater, é a forma mais simples.

 

Abraços...

nao aparece nda, e tem dados para ser exibido no banco...

segue como esta o codigo:

<asp:Repeater ID="rpt_aviso" runat="server" DataSourceID="sqlAviso" 
				Visible="False">
				<ItemTemplate>
					<table>
						<tr>
							<td>
								<asp:Panel ID="pnl_descricao" runat="server" BackColor="#507CD1" Height="70px" 
								style="text-align: center" Visible="False" Width="300px">
								<asp:Label ID="lbl_descricao" runat="server" Font-Bold="False" 
								Font-Names="Arial Unicode MS" Font-Size="Small" ForeColor="White" Height="70px" 
								style="text-align: left" Width="90%"></asp:Label>
								</asp:Panel>
							</td>
						</tr>
					</table>
				</ItemTemplate>
			</asp:Repeater>
			<asp:SqlDataSource ID="sqlAviso" runat="server" 
				ConnectionString="<%$ ConnectionStrings:conexao%>" 
				SelectCommand="Select descricao from avisos inner join aviso_aluno 
				on avisos.id = aviso_aluno.codigo_aviso where al_codigo=@ra">
				<SelectParameters>
					<asp:SessionParameter Name="ra" SessionField="ra" />
				</SelectParameters>
			</asp:SqlDataSource>

While aviso.Read()

			If aviso.HasRows = True Then
				rpt_aviso.Visible = True
				pnl_descricao.Visible = True
				lbl_descricao.Visible = True
				lbl_descricao.Text = aviso("descricao")
			Else
				rpt_aviso.Visible = False
				pnl_descricao.Visible = False
				lbl_descricao.Visible = False
			End If

		End While
acho q o erro esta nessa logica, estou certa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você coloca controles dentro de um repeater você não consegue mais acessa-los dessa forma.

Você tem que fazer um loop dentro dos items do repeater e usar a funçao findControl para conseguir acessa-los e assim atribuir os valores!

 

Saco?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Quando você coloca controles dentro de um repeater você não consegue mais acessa-los dessa forma.

Você tem que fazer um loop dentro dos items do repeater e usar a funçao findControl para conseguir acessa-los e assim atribuir os valores!

 

Saco?

não sei não, será que pode me dar um exemplo.

inclusive em outra pagina q estou desenvolvendo, preciso fazer o insert do q é marcado no checkbox do repeater e n consegui?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atende ao que deseja também, e neste artigo tem outros links.

 

Abraços...

o panel n funciona dentro do repeater

 

html:

<asp:Panel ID="pnl_descricao" runat="server" BackColor="#507CD1" Height="70px" 
				style="text-align: center" Visible="False" Width="300px">
				<asp:Label ID="lbl_descricao" runat="server" Font-Bold="False" 
					Font-Names="Arial Unicode MS" Font-Size="Small" ForeColor="White" Height="70px" 
					style="text-align: left" Width="90%"></asp:Label>
			</asp:Panel>

vb

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

		lbl_ra.Text = Session("ra")
		lbl_nome.Text = Session("nome")
		lbl_curso.Text = Session("curso")
		lbl_turma.Text = Session("turma")
		lbl_semestre.Text = Session("semestre")

		'Dim conexao As New Data.SqlClient.SqlConnection("conexao")
		Dim comando As New Data.SqlClient.SqlCommand
		Dim aviso As Data.SqlClient.SqlDataReader


		comando.Connection = conexao
		conexao.Open()
		comando.CommandText = "Select descricao from avisos inner join aviso_aluno on avisos.id = aviso_aluno.codigo_aviso where al_codigo='" & Session("ra") & "' "
		aviso = comando.ExecuteReader()

		While aviso.Read()

			If aviso.HasRows = True Then
				rpt_aviso.Visible = True
				pnl_descricao.Visible = True
				lbl_descricao.Visible = True
				lbl_descricao.Text = aviso("descricao")
			Else
				rpt_aviso.Visible = False
				pnl_descricao.Visible = False
				lbl_descricao.Visible = False
			End If

		End While
		conexao.Close()
	End Sub

End Class

Compartilhar este post


Link para o post
Compartilhar em outros sites

Este artigo é justamente utilizando panel: http://www.codeproject.com/KB/webforms/Rep...ithControl.aspx

 

Abraços...

tópico resolvido

segue o codigo:

<asp:Repeater ID="rpt_aviso" runat="server" DataSourceID="sqlAviso" 
				Visible="False">
				<ItemTemplate>
					<table>
						<tr>
							<td>
								<asp:Panel ID="pnl_descricao" runat="server" BackColor="#507CD1"
								style="text-align: center" Visible="True" Width="700px">
									<asp:Label ID="lbl_descricao" runat="server" Font-Bold="False" 
									Font-Names="Arial Unicode MS" Font-Size="Small" ForeColor="White" 
									style="text-align: left" Width="95%" Text='<%#Eval("descricao")%>'></asp:Label>
								</asp:Panel>
							</td>
						</tr>
					</table>
				</ItemTemplate>
			</asp:Repeater>

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

		Dim conexao As New Data.SqlClient.SqlConnection("conexao")
		Dim comando As New Data.SqlClient.SqlCommand
		Dim aviso As Data.SqlClient.SqlDataReader

		comando.Connection = conexao
		conexao.Open()
		comando.CommandText = "Select from tabela"
		aviso = comando.ExecuteReader()
		aviso.Read()

		If aviso.HasRows = True Then
			rpt_aviso.Visible = True
		Else
			rpt_aviso.Visible = False
		End If
		conexao.Close()
	End Sub

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.