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
{
border: 1px solid black;
background: blue url(img/glossyback.gif) repeat-x bottom left;
font-family: Arial, Sans-Serif;
font-size: 14px;
font-weight: bold;
padding: 4px;
margin-top: 4px;
cursor: pointer;
}
.accordionContenido
{
font-family: Sans-Serif;
background-color: #fff8ab;
border: 1px solid black;
border-top: none;
font-size: 12px;
padding: 7px;
}
</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 Object, ByVal e As System.EventArgs) Handles 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 Object, ByVal e As AjaxControlToolkit.AccordionItemEventArgs) Handles 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.Value, categoryId) Then
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