Foros del Web » Programando para Internet » ASPX (.net) »

menu acordeon dinamico alimentado por base de datos

Estas en el tema de menu acordeon dinamico alimentado por base de datos en el foro de ASPX (.net) en Foros del Web. Hola a tod@s estoy intentando hacer un menu acordeon con ajax que sea modificado completamente por medio de una base de datos (me explico que ...
  #1 (permalink)  
Antiguo 13/07/2009, 13:19
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
menu acordeon dinamico alimentado por base de datos

Hola a tod@s estoy intentando hacer un menu acordeon con ajax que sea modificado completamente por medio de una base de datos (me explico que pueda añadir quitar botones submenus y modificar los textos con una tabla sql server). Tengo el siguiente codigo
Código HTML:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<%@ Register
    Assembly="AjaxControlToolkit"
    Namespace="AjaxControlToolkit"
    TagPrefix="ajaxToolkit" %>
    
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Página sin título</title>
</head>
<body>
    <div>
        &nbsp;<asp:SiteMapDataSource ID="SiteMapDataSource1" runat="server" />
        
    </div>
<cc1:Accordion ID="Accordion2" runat="server" SelectedIndex="0" DataSourceID="DSNoticias" AutoSize="None">

       <HeaderTemplate>

       <table cellpadding="2" cellspacing="0" border="1" bgcolor="#cccccc">

           <tr>

               <td>

                   <a href="" onclick="return false;" ><%#Eval("notTitulo") %></a>

               </td>

           </tr>

       </table>

       </HeaderTemplate>

       <ContentTemplate>

           <p>

               <%# Server.HtmlDecode(Eval("notContenido").ToString()) %>

           </p>

       </ContentTemplate>

       </cc1:Accordion>

       
       <asp:SqlDataSource id="DSNOticias" runat="server" connectionString=" server=xxxx ; uid=sa;pwd=pass;database=Cursos;"  ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido FROM Noticias"></asp:SqlDataSource>

</body>
</html> 
pero me da el siguiente error
Cita:
The control with ID 'Accordion2_AccordionExtender' requires a ScriptManager on the page. The ScriptManager must appear before any controls that need it.
Si alguien me puede decir a que es debido este error o si conoce otro código mejor para realizar este menu acordeon dinamico se lo agradecería mucho
Muchas gracias
Un saludo para tod@s
  #2 (permalink)  
Antiguo 13/07/2009, 13:45
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Respuesta: menu acordeon dinamico alimentado por base de datos

Tema trasladado desde AJAX
  #3 (permalink)  
Antiguo 15/07/2009, 01:46
 
Fecha de Ingreso: mayo-2006
Mensajes: 178
Antigüedad: 18 años
Puntos: 3
Respuesta: menu acordeon dinamico alimentado por base de datos

prueba a poner:
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>

justo debajo de la etiqueta <form id="Form1" method="post" runat="server">
  #4 (permalink)  
Antiguo 26/07/2009, 13:21
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Tengo ahora este codigo pero lo que sucede que lo ejecuto y no me da ningún error lo que sucede que me aparece en blanco. Muchas gracias.
Código PHP:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ 
Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>

<%@ 
Register Assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"
    
Namespace="System.Web.UI" TagPrefix="asp" %>

<%@ 
Register    Assembly="AjaxControlToolkit"    Namespace="AjaxControlToolkit"    TagPrefix="ajaxToolkit" %>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
script type="text/javascript" src "js/jquery.js"></script>
<script type="text/javascript" src="js/ddaccordion.js">
</script>

<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
    <title>Página sin título</title>
<link rel="stylesheet" type="text/css" href="css/mainstyle.css"/>    
<style type="text/css">
  .header {background-color: blue;}
  .content {border: solid;}
  </style>
<link media="all" href="../css/widget04.css" type="text/css" rel="stylesheet"/>
</head>
<body>


<form id="form1" runat="server">
    <asp:ScriptManager ID="asm" runat="server" />
  
   <asp:SqlDataSource ID="sds1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=xxxxx ;Integrated Security=True;Connect Timeout=30;User Instance=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido FROM Noticias" />
    <%--<asp:SqlDataSource ID="DSNoticias" runat="server" ConnectionString=" Data Source=.\SQLEXPRESS;AttachDbFilename=D:\MisProgramas\Prueba\App_Data\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido FROM Noticias"></asp:SqlDataSource>--%>
    
    <div>
      <ajaxToolkit:Accordion ID="acc1" runat="server" 
        HeaderCssClass="header" ContentCssClass="content" Width="300px"
        DataSourceID="sds1" FadeTransitions="true">
        <HeaderTemplate><b>Vendor #<%#DataBinder.Eval(Container.DataItem, "VendorID")%></b></HeaderTemplate>
        <ContentTemplate><%#DataBinder.Eval(Container.DataItem, "Name")%></ContentTemplate>
      </ajaxToolkit:Accordion>
    </div>
  </form>    
</body>
</html> 
y en aspx

Código PHP:
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        acc1
.DataBind()
    
End Sub 
  #5 (permalink)  
Antiguo 27/07/2009, 10:14
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

He realizado unas modificaciones al código pero sigo sin tener resultado(me aparece toda la página en blanco) y no me da ningún error, a que puede ser debido (todo este codigo está creado en una plantilla asp.net ajax-Enabled). Muchas gracias
Código PHP:
<%@ Page Language="VB" AutoEventWireup="true" CodeFile="Default.aspx.vb" Inherits="_Default" %>

<%@ 
Register Assembly="AjaxControlToolkit" Namespace="AjaxControlToolkit" TagPrefix="cc1" %>
<%--<
script runat="server">
  
Sub Page_Load()
        
Me.Accordion1.DataBind()
  
End Sub
</script>
--%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title>Untitled Page</title>
</head>
<body>
    <form id="form1" runat="server">
        <asp:ScriptManager ID="ScriptManager1" runat="server" />
        <asp:SqlDataSource ID="sds1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=xxxxx xxxx;Integrated Security=True;Connect Timeout=30;User Instance=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido FROM Noticias" />
        <div>
            <cc1:Accordion ID="Accordion1" runat="server" HeaderCssClass="header" ContentCssClass="content" Width="300px"
        DataSourceID="sds1" FadeTransitions="true" BackColor="Maroon" BorderColor="#FFFF80">
            </cc1:Accordion>
        </div>
    </form>
</body>
</html> 
a el aspx
Código PHP:
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        Me
.Accordion1.DataBind()
    
End Sub 
  #6 (permalink)  
Antiguo 27/07/2009, 10:33
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

se me olvidaba el webconfig
Código PHP:
<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="system.web.extensions" type="System.Web.Configuration.SystemWebExtensionsSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
            <sectionGroup name="scripting" type="System.Web.Configuration.ScriptingSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                <section name="scriptResourceHandler" type="System.Web.Configuration.ScriptingScriptResourceHandlerSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                <sectionGroup name="webServices" type="System.Web.Configuration.ScriptingWebServicesSectionGroup, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
                    <section name="jsonSerialization" type="System.Web.Configuration.ScriptingJsonSerializationSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="Everywhere"/>
                    <section name="profileService" type="System.Web.Configuration.ScriptingProfileServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                    <section name="authenticationService" type="System.Web.Configuration.ScriptingAuthenticationServiceSection, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" requirePermission="false" allowDefinition="MachineToApplication"/>
                </sectionGroup>
            </sectionGroup>
        </sectionGroup>
    </configSections>
    <system.web>
        <pages>
            <controls>
                <add tagPrefix="asp" namespace="System.Web.UI" assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            </controls>
        </pages>
        <!--
          Set compilation debug="true" to insert debugging
          symbols into the compiled page. Because this
          affects performance, set this value to true only
          during development.
    -->
        <compilation debug="true">
            <assemblies>
                <add assembly="System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
                <add assembly="System.Design, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="System.Web.Extensions.Design, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
                <add assembly="Microsoft.Build.Utilities, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/>
                <add assembly="Microsoft.Build.Framework, Version=2.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A"/></assemblies>
        </compilation>
        <httpHandlers>
            <remove verb="*" path="*.asmx"/>
            <add verb="*" path="*.asmx" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add verb="*" path="*_AppService.axd" validate="false" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/>
        </httpHandlers>
        <httpModules>
            <add name="ScriptModule" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </httpModules>
    </system.web>
    <system.web.extensions>
        <scripting>
            <webServices>
                <!-- Uncomment this line to customize maxJsonLength and add a custom converter -->
                <!--
      <jsonSerialization maxJsonLength="500">
        <converters>
          <add name="ConvertMe" type="Acme.SubAcme.ConvertMeTypeConverter"/>
        </converters>
      </jsonSerialization>
      -->
                <!-- Uncomment this line to enable the authentication service. Include requireSSL="true" if appropriate. -->
                <!--
        <authenticationService enabled="true" requireSSL = "true|false"/>
      -->
                <!-- Uncomment these lines to enable the profile service. To allow profile properties to be retrieved
           and modified in ASP.NET AJAX applications, you need to add each property name to the readAccessProperties and
           writeAccessProperties attributes. -->
                <!--
      <profileService enabled="true"
                      readAccessProperties="propertyname1,propertyname2"
                      writeAccessProperties="propertyname1,propertyname2" />
      -->
            </webServices>
            <!--
      <scriptResourceHandler enableCompression="true" enableCaching="true" />
      -->
        </scripting>
    </system.web.extensions>
    <system.webServer>
        <validation validateIntegratedModeConfiguration="false"/>
        <modules>
            <add name="ScriptModule" preCondition="integratedMode" type="System.Web.Handlers.ScriptModule, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </modules>
        <handlers>
            <remove name="WebServiceHandlerFactory-Integrated"/>
            <add name="ScriptHandlerFactory" verb="*" path="*.asmx" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add name="ScriptHandlerFactoryAppServices" verb="*" path="*_AppService.axd" preCondition="integratedMode" type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
            <add name="ScriptResource" preCondition="integratedMode" verb="GET,HEAD" path="ScriptResource.axd" type="System.Web.Handlers.ScriptResourceHandler, System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/>
        </handlers>
    </system.webServer>
</configuration>
  #7 (permalink)  
Antiguo 13/08/2009, 12:37
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Ya tengo creado el menú accordion con ajax y me rellena desde una base de datos pero ahora lo que necesito es que en un menú me cargue varios submenus(que al pulsar sobre un botón me despliegue varios contenidos de la base de datos que quiero que se coloquen en ese botón) no se si me explico. A ver si me podeis ayudar y de este modo terminar ya con este menu ya que me está costando mucho. Muchas grácias. El código que tengo es el siguiente.
Código PHP:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default2.aspx.vb" Inherits="Default2" %>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml" >
<
head id="Head1" runat="server"
<
title>Accordion</title
<
style type="text/css"
.
accordionCabecera 

border1px solid black
backgroundblue url(img/glossyback.gifrepeat-x bottom left;
font-familyArialSans-Serif
font-size14px
font-weightbold
padding4px
margin-top4px
cursorpointer


.
accordionContenido 

font-familySans-Serif
background-color#fff8ab; 
border1px solid black
border-topnone
font-size12px
padding7px

</
style


</
head
<
body
<
form id="form1" runat="server"
<
div

<
asp:ScriptManager id="ScriptManager" runat="server" /> 

<
ajaxToolkit:Accordion ID="Accordion1" runat="server" 
FadeTransitions="True" 
FramesPerSecond="50" 
Width="250px" 
TransitionDuration="200" 
HeaderCssClass="accordionCabecera" 
ContentCssClass="accordionContenido" DataSourceID="sds1"
<%--<
Panes
<
ajaxToolkit:AccordionPane ID="AccordionPane1" runat="server"
<
Header>Panel 1</Header
<
Content>Contenido 1</Content
</
ajaxToolkit:AccordionPane
<
ajaxToolkit:AccordionPane ID="AccordionPane2" runat="server"
<
Header>Panel 2</Header
<
Content>Contenido 1</Content
</
ajaxToolkit:AccordionPane
<
ajaxToolkit:AccordionPane ID="AccordionPane3" runat="server"
<
Header>Panel 3</Header
<
Content>
<
a href=""Contenido 3</a><br />
<
a href="">Contendio 4</a><br />


</
Content
</
ajaxToolkit:AccordionPane>
<
ajaxToolkit:AccordionPane ID="AccordionPane4" runat="server"
<
Header>Panel 4</Header
<
Content>Contenido 4</Content>
</
ajaxToolkit:AccordionPane>  
</
Panes> --%>
<
HeaderTemplate>

<%
#Server.HtmlDecode(Eval("nottitulo").ToString())%>


</HeaderTemplate>

<
ContentTemplate>

    <
a href=""><%# Server.HtmlDecode(Eval("notContenido").ToString()) %></a><br />

</ContentTemplate>


</
ajaxToolkit:Accordion
<
asp:SqlDataSource ID="sds1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\MisProgramas\MenuAcordeon1\App_Data\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido FROM Noticias" />

</
div
</
form
</
body
</
html
y mi el contenido de mi base de datos es la siguiente
Cita:
notTitulo: sería lo que es el boton principal
notContenido: sería lo que se despliega al pulsar sobre notTitulo(el submenu) y aquí es donde tengo la duda la cual es que aquí como podemos ver solo me añade un elemento pero lo que quiero yo es añadirle varios por ejemplo que en el botón Planeta se le despliegue Tierra, Mercurio, Saturno, etc...

notTitulo.......notContenido
Hola.................Luis
Hola.................Paco
Planeta............Tierra
Monchi.............Ivan
NULL............... NULL

  #8 (permalink)  
Antiguo 17/08/2009, 10:27
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

¿Nadie me puede ayudar? es que ya no se por donde cogerlo y me es muy necesario. Muchas gracias
  #9 (permalink)  
Antiguo 17/09/2009, 11:01
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Bueno despues de muchas vueltas he encontrado el siguiente código para crear el menú accordion pero sigue sin mostrarme nada a ver si entre todos podemos ver cual es el error que estoy cometiendo en este código ya que me entra en la excepcion que tengo creada en el page load. Espero que me podais ayudar y poder quitarme este tema de encima y dejaros de molestar con esto muchas gracias

Cita:
La conexión la tengon creada en el web config

Código PHP:
<connectionStrings>
    <
add name="ConnectionString" connectionString="server=192.168.1.245 ; uid=sa; pwd=pass; database=BookDB;"
          
providerName="System.Data.SqlClient"/>
    </
connectionStrings

Código PHP:
<%@ Page Language="VB" AutoEventWireup="false" CodeFile="Default3.aspx.vb" Inherits="Default3" %>

<!
DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<
html xmlns="http://www.w3.org/1999/xhtml">
<
head runat="server">
    <
title>Página sin título</title>
    <
style type="text/css"
.
accordionCabecera 

border1px solid black
backgroundblue url(img/glossyback.gifrepeat-x bottom left;
font-familyArialSans-Serif
font-size14px
font-weightbold
padding4px
margin-top4px
cursorpointer


.
accordionContenido 

font-familySans-Serif
background-color#fff8ab; 
border1px solid black
border-topnone
font-size12px
padding7px

</
style

</
head>
<
body>
    <
form id="form1" runat="server">
    <
div>
    
        <
asp:ScriptManager ID="ScriptManager1" runat="server">
        </
asp:ScriptManager>
    
    </
div>
    <
ajaxToolkit:Accordion ID="accordionBooks" runat="server" FadeTransitions="True" FramesPerSecond="50" Width="250px" TransitionDuration="200" HeaderCssClass="accordionCabecera" ContentCssClass="accordionContenido">
        <
Panes>
            <
ajaxToolkit:AccordionPane ID="pane1" runat="server">
                <
Header>
                   <
p>
                        <
asp:label runat="server" Text='<%# DataBinder.Eval(Container.DataItem, "category_name") %>'/>
                   </
p>           
                </
Header>
                <
Content>
                    <
asp:HiddenField ID="hdnCategoryId" Value='<%# DataBinder.Eval(Container.DataItem, "id") %>' runat="server" />
                       <
div style="height:100px">
                           <
asp:GridView ID="gvBooks" runat="server" DataKeyNames="Id" AutoGenerateColumns="false" Width="100%">
                                <
Columns>
                                    <
asp:BoundField DataField="id" runat="server" />
                            <
asp:TemplateField>
                                <
ItemTemplate>
                                    <
asp:Label ID="lblTitle" Text='<%# DataBinder.Eval(Container.DataItem, "Title") %>' runat="server" />
                                </
ItemTemplate>
                            </
asp:TemplateField>

                            <
asp:TemplateField>
                                <
ItemTemplate>
                                    <
asp:Label ID="lblPublisher" Text='<%# DataBinder.Eval(Container.DataItem, "Publisher") %>' runat="server" />
                                </
ItemTemplate>
                            </
asp:TemplateField>

                            <
asp:TemplateField>
                                <
ItemTemplate>
                                    <
asp:Label ID="lblISBN" Text='<%# DataBinder.Eval(Container.DataItem, "ISBN") %>' runat="server" />
                                </
ItemTemplate>
                            </
asp:TemplateField>

                                </
Columns>
                           </
asp:GridView>
                       </
div>
                </
Content>
            </
ajaxToolkit:AccordionPane>        
        </
Panes>    
    </
ajaxToolkit:Accordion>
    
    
        <
asp:SqlDataSource ID="sds1" runat="server" ConnectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=D:\MisProgramas\MenuAcordeon1\App_Data\Database.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True" ProviderName="System.Data.SqlClient" SelectCommand="SELECT notTitulo, notContenido,  codnotCont FROM Noticias1, Noticias2" />
    
    </
form>
</
body>
</
html
Código PHP:

Imports System
.Data.Sql
Imports System
.Data.SqlClient
Imports System
.Data
Partial 
Class Default3
    Inherits System
.Web.UI.Page
    
Protected Sub Page_Load(ByVal sender As ObjectByVal e As System.EventArgsHandles Me.Load
        
Try
            
accordionBooks.DataSource GetAllBookCategories().Tables(0).DefaultView
            accordionBooks
.DataBind()
        Catch 
ex As Exception
            Error 
("Error while getting data")
        
End Try
    
End Sub


    
Protected Sub accordionBooks_ItemDataBound(ByVal sender As ObjectByVal e As AjaxControlToolkit.AccordionItemEventArgsHandles accordionBooks.ItemDataBound
        
Try
            If 
e.ItemType AjaxControlToolkit.AccordionItemType.Content Then
                Dim gvBooks 
As GridView CType(e.AccordionItem.FindControl("gvBooks"), GridView)
                
Dim hdnCategoryId As HiddenField CType(e.AccordionItem.FindControl("hdnCategoryId"), HiddenField)
                
Dim categoryId As Integer
                
If Not Integer.TryParse(hdnCategoryId.ValuecategoryIdThen
                    
Throw New Exception("Unable to parse id")
                
End If
                
Me.gvBooks.DataSource GetAllBooksByCategoryId(categoryId)
            
End If
            
Me.gvBooks.DataBind()
        Catch 
ex As Exception
            Error 
("Error while getting data")
        
End Try
    
End Sub

    
Public Shared Function GetAllBooksByCategoryId(ByVal categoryId As Integer) As DataSet
        Dim ds 
As DataSet Nothing
        
Try
            
Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
                
conn.Open()
                
Using cmd As New SqlCommand("spGetBooksByCategory"conn)
                    
cmd.Parameters.Add("@category_id"SqlDbType.Int).Value categoryId
                    cmd
.CommandType CommandType.StoredProcedure
                    Using da 
As New SqlDataAdapter(cmd)
                        
ds = New DataSet()
                        
da.Fill(ds)

                    
End Using

                End Using

            End Using

        
Catch ex As Exception
            
'Dim ex As throw

        End Try
        Return ds

    End Function

    Public Shared Function GetAllBookCategories() As DataSet
        Dim ds As DataSet = Nothing
        Try
            Using conn As New SqlConnection(ConfigurationManager.ConnectionStrings("ConnectionString").ConnectionString)
                conn.Open()
                Using cmd As New SqlCommand("spGetBookCategories", conn)
                    cmd.CommandType = CommandType.StoredProcedure
                    Using da As New SqlDataAdapter(cmd)
                        ds = New DataSet()
                        da.Fill(ds)
                        Dim rowCount As Integer = ds.Tables(0).Rows.Count
                    End Using
                End Using
            End Using
        Catch ex As Exception
            '
Dim ex As throw
        
End Try
        Return 
ds
    End 
Function

End Class 
  #10 (permalink)  
Antiguo 21/09/2009, 10:51
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Ya me falta muy poco para conseguir que funcione este menu accordion, ahora el único y mas importante de mis problemas es que no consigo que me muestre los datos de la tabla en el gridView no consigo que me entre en el procedimiento accordionBooks_ItemDataBound a ver si alguien me puede decir el motivo por el cual no entra en dicho procedimiento y no me rellena el gridView que se encuentra dentro del Content. Muchas gracias y espero vuestras ayuda para ya poder cerrar este tema.
  #11 (permalink)  
Antiguo 22/09/2009, 12:43
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Del sitio en el que me he fijado del código he encontrado la siguiente explicacion, que es lo que me sucede a mi (no consigo que me muestre los datos de la base de datos en el menú accordion) lo que sucede que no entiendo la explicacion (la que muestro mas abajo)y no se que debo hacer para que se me muestren los datos. (todo según el código que tengo más arriba) Si alguien me lo puede explicar y solucionar mi problema se lo agradecería.
Cita:
Note that we are using the default view here. While writing this post I forgot this step and couldn’t figure out why I was getting no data showing up. You cannot assign the data source a data table or dataset, however generic list collections seem to bind fine.
  #12 (permalink)  
Antiguo 23/09/2009, 09:48
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

Estoy mirando en todos lados para solucionar el problema de que no me aparezcan los datos de una tabla de base de datos en mi menu accordion y todo lo que he visto me indica que el problema me viene por Accordion.cs (coleccion generica) por favor que alguien me conteste y me ayude a solucionar este problema. Gracias, (para sacar este código me he basado en el siguiente tutorial www.craigweston.ca/?p=108)
  #13 (permalink)  
Antiguo 24/09/2009, 10:38
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 15 años, 10 meses
Puntos: 1
Respuesta: menu acordeon dinamico alimentado por base de datos

¿Nadie me puede ayudar? estoy muy estancado con este tema y no soy capaz de avanzar mas, si alguien me puede ayudar le estaría muy agradecido.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:43.