Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera gostaria de saber como posso fazer este tipo de consulta com asp.net usando VBEm asp:Sql = "Select * form categoria"Set rsCategoria = Conexao.Execute(Sql)While not rsCategoria.eof Sql = "Select * from subcategoria where id_categoria ="&rsCategoria("id_categoria") Set rsSubCategoria = Conexao.Execute(Sql) while not rsSubCategoria.eof response.write rsCategoria("nome_categoria") &"-" & rsSubCategoria("nome_subcategoria") rsSubCategoria.Movenext wend rsCategoria.MovenextWendAcima fiz uma busca na tabela categoria e para cada categoria eu exibe suas subcategorias existentesAgora em asp.net usando VB nao consigo fazer isso.Em asp.Net estou usando o objeto<ASP:Repeater id="Repeater1" runat="server"><ItemTemplate> collapse.addItem("<%# Container.DataItem("nome")%>", "<%# Container.DataItem("nome")%>");</ItemTemplate></ASP:Repeater>alguem pode me dar um exemplo de como posso fazer este tipo de busca?Desde já agradeço!Atenciosamente,Paulo RogérioEm asp.net usando VB.netEu até fiz alguma coisa o problema é que nao consigo passar o parametro p/ a outra subveja o código abaixo<%@ Page Language="VB"%><%@ Import Namespace="System.Data"%><%@ Import Namespace="System.Data.Oledb"%><script runat="server"> sub Page_Load(obj as Object, e as EventArgs) Mostra_Categoria() end sub sub Mostra_Categoria() 'configura a conexao dim objConexao as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\paulorogerio\helponline\db\helponline.mdb") 'abre a conexao dim cmdCategoria as new OleDbDataAdapter _ ("Select * from tbl_Categoria",objConexao) 'preenche o DataSet dim ds as DataSet = new DataSet() cmdCategoria.Fill(ds, "tbl_Categoria") 'seleciona a visualização de dados e vincula ao controle de servidor repCategoria.DataSource = ds.Tables("tbl_Categoria"). _ DefaultView DataBind() objConexao.Close() end sub sub repCategoria_ItemCreated(obj as Object, e as RepeaterItemEventArgs) Mostra_SubCategoria(1) end sub sub Mostra_SubCategoria(ByVal pid_categoria as integer) 'configura a conexao dim objConexao as new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=D:\paulorogerio\helponline\db\helponline.mdb") 'abre a conexao 'Monto a Query dim sql as String 'sql = "Select * from tbl_SubCategoria Where id_categoria=" & pid_categoria sql = "Select * from tbl_SubCategoria " dim cmdSubCategoria as new OleDbDataAdapter _ (sql,objConexao) 'preenche o DataSet dim ds as DataSet = new DataSet() cmdSubCategoria.Fill(ds, "tbl_SubCategoria") 'seleciona a visualização de dados e vincula ao controle de servidor dim repSubCategoria as Repeater repSubCategoria.DataSource = ds.Tables("tbl_SubCategoria"). _ DefaultView DataBind() objConexao.Close() end sub</script><html> <body> <ASP:Repeater id="repCategoria" runat="server" OnItemCreated="repCategoria_ItemCreated"> <HeaderTemplate> <table> <tr> <td><b>Categoria</b></td> </tr> </HeaderTemplate> <ItemTemplate> <tr> <td><%# Container.DataItem("nome")%></td> </tr> <ASP:Repeater id="repSubCategoria" runat="server"> <ItemTemplate> <tr> <td><%# Container.DataItem("nome")%></td> </tr> </ItemTemplate> </ASP:Repeater> </ItemTemplate> <FooterTemplate> </table> </FooterTemplate> </ASP:Repeater> </body></html>Na Sub Mostra_SubCategoria você deveria usar o sql = "Select * from tbl_SubCategoria Where id_categoria=" & pid_categoriasendo que ele está como comentário e você está usando um outro que seleciona todos registros sem filtrar.
ISSO EU SEI, FIZ ISSO DE PROPOSITO, MAIS NEM ASSIM FUNCIONOUAGUEM TEM UM EXEMPLO PRATICO?
Você pode tentar armazenar o resultado da primeira select em vetor, depois rodar a segunda dentro de um while, usando o valor da array a cada vez que rodar o while. Isso vai funcionar...
Já resolvi galera, obrigado pela ajuda de todos.
para matar a duvida de todos segue abaixo o codigo
O site esta no endereço ao lado http://www28.brinkster.com/pauloprojetos/
<%@ Page Language="VB"%>
<%@ Import Namespace="System.Data"%>
<%@ Import Namespace="System.Data.Oledb"%>
<script runat="server">
sub Page_Load(obj as Object, e as EventArgs)
'configura a conexao
dim objConexao as new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings("ConnectionString"))
'abre a conexao
dim cmdCategoria as new OleDbDataAdapter _
("Select * from tbl_Categoria",objConexao)
'preenche o DataSet
dim ds as DataSet = new DataSet()
cmdCategoria.Fill(ds, "tbl_Categoria")
'seleciona a visualização de dados e vincula ao controle de servidor
Repeater1.DataSource = ds.Tables("tbl_Categoria"). _
DefaultView
Repeater1.DataBind()
end sub
Function Subcategorias(ByVal intCategoria As Integer) As DataSet
'configura a conexao
dim objConexao as new OleDbConnection(System.Configuration.ConfigurationSettings.AppSettings("ConnectionString"))
'abre a conexao
dim cmdSubcategorias as new OleDbDataAdapter _
("Select C.Nome AS Nome_Categoria, S.ID_Subcategoria, S.Nome from tbl_SubCategoria S INNER JOIN tbl_Categoria C ON C.ID_Categoria = S.ID_Categoria WHERE (S.ID_Categoria = " & intCategoria.ToString() & ")",objConexao)
'preenche o DataSet
dim ds as DataSet = new DataSet()
cmdSubcategorias.Fill(ds, "Subcategorias")
'seleciona a visualização de dados e vincula ao controle de servidor
Subcategorias = ds
End Function
</script>
<html>
<head>
<LINK REL="StyleSheet" HREF="include/padrao.css" type="text/css">
<script language=JavaScript src="include/dynlayer.js"></SCRIPT>
<script language=JavaScript src="include/dynlayer-glide.js"></SCRIPT>
<script language=JavaScript src="include/dynlayer-common.js"></SCRIPT>
<script language=JavaScript src="include/collapsemenu.js"></SCRIPT>
<script language=JavaScript src="include/scrollwindow.js"></SCRIPT>
<script language=JavaScript>
<!--
onload = init
function init() {
collapse.activate()
// manually set the height of the scroll to the height of the collapsemenu
myscroll.activate(collapse.w,collapse.itemTotal)
collapse.onToggle()
}
myscroll = new ScrollWindow(0,35,131,(screen.height-347), "menu")
myscroll.setMargins(0,0,0,1)
myscroll.speed = 50
myscroll.build()
collapse = new CollapseMenu(0,0,131,0)
collapse.openStyle = "slide" //glide ou lide ou move
collapse.MenuColor = "black" // cor de fonte do menu
collapse.bgMenuColor = "#b5e1be" // fundo menu
collapse.SubMenuColor = "#717171" // fonte do sub menu
collapse.bgSubMenuColor = "#ebfbca" // fundo do sub menu
collapse.overMenuColor = "black" // font over menu
collapse.bgoverMenuColor = "#218c1e" //over do menu
collapse.overSubMenuColor = "black" // font over submenu
collapse.bgoverSubMenuColor = "#c5c012" // over do sub menu
collapse.borderMenuColor = "#008040" // borda do menu
collapse.borderSubMenuColor = "#717171" // borda do sub menu
collapse.addItem("Página Principal", "Página Principal", "principal.aspx","main");
//Aqui eu coloco o menu estatico
<%if session("id_perfil") = 1 Then%>
collapse.addItem("Administrador", "Administrador");
collapse.addSubItem("Administrador", "Menu", "adm/menu/menu.asp", "main");
collapse.addSubItem("Administrador", "Categoria", "adm/categoria/categoria.asp", "main");
collapse.addSubItem("Administrador", "SubCategoria", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Apostila", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Programa", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Codigo", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Artigos", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Mensagens", "cadastro.asp", "main");
collapse.addSubItem("Administrador", "Notícias", "cadastro.asp", "main");
<%end if%>
<ASP:Repeater id="Repeater1" runat="server">
<ItemTemplate>
collapse.addItem("<%# Container.DataItem("nome")%>", "<%# Container.DataItem("nome")%>");
<ASP:Repeater id="Repeater2" DataSource='<%# Subcategorias(Container.DataItem("ID_Categoria"))%>' runat="server">
<ItemTemplate>
collapse.addSubItem("<%# Container.DataItem("Nome_Categoria")%>", "<%# Container.DataItem("Nome")%>", "funcao.aspx?ID_Subcategoria=<%# Container.DataItem("ID_Subcategoria")%>", "main");
</ItemTemplate>
</ASP:Repeater>
</ItemTemplate>
</ASP:Repeater>
//Aqui entra os subs menus
//collapse.addSubItem("<%'=rsMenu("nome_menu")%>", "<%'=rsCategoria("Nome_categoria")%>", "subcategoria.asp?id_categoria=<%'=rsCategoria("id_categoria")%>", "main");
//
//Aqui eu coloco o menu estatico
//collapse.addItem("Paulo", "Paulo");
//collapse.addSubItem("Paulo", "Programação Visual", "apostilas.asp?Classificacao=1", "main");
//Aqui eu coloco o menu estatico
//collapse.addItem("Contato", "Contato");
//collapse.addSubItem("Contato", "Paulo Rogério", "mailto:paulo@choice.com.br", "main");
collapse.build()
// synch with the 'myscroll' scroll object
collapse.scroll = myscroll
collapse.onToggle = CollapseSynchScroll
// onToggle handler to sync the height of a Scroll with a CollapseMenu
function CollapseSynchScroll() {
var obj, h = this.itemTotal
for (var i=0;i<this.numBlocks;i++) {
if (this.blocks*.open) {*
* h += this.blocks**.contentHeight*
}
}
if (is.ns) {
obj = eval("document.ScrollButton")
}
else {
obj = eval("ScrollButton.style")
}
if (myscroll.screenlyr.h<h) {
obj.visibility = "visible"
}
else {
obj.visibility = "hidden"
}
if (parseInt(myscroll.contentlyr.y)<0 && h<parseInt(myscroll.screenlyr.h)) {
myscroll.contentlyr.moveTo(null,0)
}
this.scroll.activate(this.w,h,false)
}
writeCSS(myscroll.css+collapse.css)
//-->
</SCRIPT>
<STYLE type=text/css></STYLE>
* <META content="MSHTML 6.00.2715.400" name=GENERATOR>*
* </head>*
*<BODY bgColor=white leftMargin=0 topMargin=0 scroll=no marginwidth="0" marginheight="0">*
*<TABLE height="100%" cellSpacing=0 cellPadding=0 width=151 border=0>*
* <TBODY> *
* <TR> *
* <TD vAlign=top noWrap width=131 bgColor=#b5e1be height="100%"><IMG *
* src="img/label_menu.jpg" border=0><BR>*
* <script language=JavaScript>*
document.write(myscroll.divStart)
document.write(collapse.divStart)
document.write(collapse.htmlMenu)
document.write(collapse.divEnd)
document.write(myscroll.divEnd)
* </SCRIPT>*
* </TD>*
<TD style="BACKGROUND-IMAGE: url(img/bordaesq.gif)" vAlign=top noWrap
* width=7></TD>*
* <TD vAlign=top noWrap width=13></TD>*
* </TR>*
* <TR>*
* <TD vAlign=top noWrap width=131 bgColor=#b5e1be height="100%">*
* <form method="post" action="login.asp" name="frmlogin" target="main">*
* <table width="75%" border="0" cellspacing="0" cellpadding="0" align="center">*
* <tr> *
* <td> *
* <input class="input_busca" type="text" name="txtlogin" size="15" value="login" onfocus="document.frmlogin.txtlogin.value='';">*
* </td>*
* <td rowspan="2"> *
* <input type="submit" name="Submit" value="ok">*
* </td>*
* </tr>*
* <tr> *
* <td> *
* <input class="input_busca" type="Password" name="txtsenha" size="15" value="senha" onfocus="document.frmlogin.txtsenha.value='';">*
* </td>*
* </tr>*
* </table>*
* </form>*
* </TD>*
<TD style="BACKGROUND-IMAGE: url(img/bordaesq.gif)" vAlign=top noWrap
* width=7></TD>*
* <TD vAlign=top noWrap width=13></TD>*
* </TR>*
* </TBODY>*
*</TABLE>*
<DIV id=ScrollButton
style="LEFT: 70px; VISIBILITY: hidden; POSITION: absolute; TOP: 300px"
align=right><IMG onmouseup=myscroll.stop();
*onmousedown="myscroll.up(); return false" id=ScrollButtonUP *
*onmouseover="myscroll.up(); ScrollButtonUP.src='img/menu_scroll_up_over.jpg'; return false" *
style="CURSOR: hand"
onmouseout="myscroll.stop(); ScrollButtonUP.src='img/menu_scroll_up.jpg'"
height=19 src="img/menu_scroll_up.jpg" width=19
*border=0> <IMG onmouseup="myscroll.stop(); return false" *
*onmousedown="myscroll.down(); return false" id=ScrollButtonDOWN *
*onmouseover="myscroll.down(); ScrollButtonDOWN.src='img/menu_scroll_down_over.jpg'; return false" *
style="CURSOR: hand"
onmouseout="myscroll.stop(); ScrollButtonDOWN.src='img/menu_scroll_down.jpg'; return false"
height=19 src="img/menu_scroll_down.jpg" width=19
*border=0> </DIV>*
*<script language=JavaScript>*
if (is.ns) {
obj = eval("document.ScrollButton");
}
else {
obj = eval("ScrollButton.style");
}
obj.top = (screen.height - 300);
function chat() {
* var yes = 1;*
* var no = 0;*
* var menubar = no;*
* var scrollbars = no;*
* var locationbar = no;*
* var directories = no;*
* var resizable = no;*
* var statusbar = no;*
* var toolbar = no;*
windowprops = "width=" + (screen.width-10) + ",height=" + (screen.height-50) + ",top=0,left=0";
windowprops += (menubar ? ",menubars" : "") +
(scrollbars ? ",scrollbars" : "") +
(locationbar ? ",location" : "") +
(directories ? ",directories" : "") +
(resizable ? ",resizable" : "") +
(statusbar ? ",status" : "") +
(toolbar ? ",toolbar" : "");
window.open('chat', 'chatvbweb', windowprops);
}
*</SCRIPT>*
* </body>*
*</html>*
Repeater dentro de repeater... como no ASP 3.