Ver Mensaje Individual
  #9 (permalink)  
Antiguo 17/09/2009, 11:01
igonfil
 
Fecha de Ingreso: junio-2008
Mensajes: 250
Antigüedad: 16 años, 8 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