Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    DetailsView legato a ListBox

    Salve, non riesco ad utilizzare un DetailsView in correlazione ad una Listbox: la ListBox visualizza i valori di un campo di una tabella di un DB e alla selezione di un valore il DetailsView dovrebbe visualizzare tutti i campi di quel record sul DB.
    Il problema è che non so come impostare il DataSource del DetailsView che dovrebbe venir invocato ad ogni ListBox1_SelectedIndexChanged.

    Posto il codice:
    codice:
    Option Strict On
    
    Imports System.Data.SqlClient
    Imports System.Data
    
    Partial Class DettagliLibri
        Inherits System.Web.UI.Page
    
        Dim MioDataSet As DataSet
    
        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            Dim id As Integer = CInt(Request.QueryString("id"))
    
            If Not (Page.IsPostBack) Then ' Primo avvio dell'applicazione
                Dim stringaConnessioneDB As String = ConfigurationManager.AppSettings("pathConnessione1")
                Dim connessioneDB As SqlConnection = New SqlConnection(stringaConnessioneDB)
    
                MioDataSet = New DataSet()
                Dim DataTable_TitoliLibri As DataTable = New DataTable("TabellaTitoliLibri")
                Dim SqlDataAdapter_TabellaTitoliLibri As SqlDataAdapter = New SqlDataAdapter("SELECT * FROM TitoliLibri WHERE id_autore=" & id, connessioneDB)
    
                Try ' Inserisco la DataTable nel DataSet
                    SqlDataAdapter_TabellaTitoliLibri.Fill(MioDataSet, DataTable_TitoliLibri.TableName())
    
                    ' Riempo la Listbox con i valori della DataTable "TabellaAutori", ovvero con i valori della tabella 
                    ' "authors" del DB
                    ListBox1.DataSource = MioDataSet.Tables("TabellaTitoliLibri")
                    ListBox1.DataBind()
                Catch ex As Exception
                    Throw New Exception(ex.Message)
                Finally
                    connessioneDB.Close()
                    connessioneDB.Dispose()
                End Try
    
                ' Inserisco il DataSet nell'oggetto Session in modo da tenerne memoria anche in caso di nuovi PageLoad
                Session("RicordaDataSet") = MioDataSet
            Else ' Postback della pagina 
                MioDataSet = CType(Session("RicordaDataSet"), DataSet)
            End If
    
        End Sub
    
        Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
            ' COSI' NON FUNZIONA
    DetailsView1.DataSource = MioDataSet.Tables("TabellaTitoliLibri").Rows(ListBox1.SelectedIndex) 
            DetailsView1.DataBind()
            DetailsView1.Visible = True
        End Sub
    End Class

    codice:
    <%@ Page Language="VB" AutoEventWireup="false" CodeFile="DettagliLibri.aspx.vb" Inherits="DettagliLibri" %>
    
    <!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" >
    <base target="_self" />
        <title>Dettagli Libri</title>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <asp:ListBox ID="ListBox1" runat="server" ToolTip="Scegli il libro di cui visualizzare i dettagli"
                         OnSelectedIndexChanged="ListBox1_SelectedIndexChanged" 
                AutoPostBack="True" DataTextField="Titolo" DataValueField="id">
            </asp:ListBox>
        
        
        
        <asp: DetailsView ID="DetailsView1" runat="server" DataKeyNames="id" BackColor="White" 
                BorderColor="#DEDFDE" BorderStyle="None" BorderWidth="1px" CellPadding="4" 
                ForeColor="Black" GridLines="Vertical" Height="50px" Width="125px" 
                Visible="False" AutoGenerateRows="False">
                <FooterStyle BackColor="#CCCC99" />
                <RowStyle BackColor="#F7F7DE" />
                <PagerStyle BackColor="#F7F7DE" ForeColor="Black" HorizontalAlign="Right" />
                <Fields>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Titolo") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <HeaderTemplate>
                            <asp:Label ID="TitoloLibroLabelHeader" runat="server" Text="Titolo Libro"></asp:Label>
                        </HeaderTemplate>
                        <InsertItemTemplate>
                            <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("Titolo") %>'></asp:TextBox>
                        </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="TitoloLibroLabel" runat="server" Text='<%# Bind("Titolo") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField>
                        <EditItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Descrizione") %>'></asp:TextBox>
                        </EditItemTemplate>
                        <HeaderTemplate>
                            <asp:Label ID="DescrizioneLibroLabelHeader" runat="server" 
                                Text="Descrizione Libro"></asp:Label>
                        </HeaderTemplate>
                        <InsertItemTemplate>
                            <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("Descrizione") %>'></asp:TextBox>
                        </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:Label ID="DescizioneLibroLabel" runat="server" 
                                Text='<%# Bind("Descrizione") %>'></asp:Label>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <EditItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                                CommandName="Update" Text="Aggiorna"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                CommandName="Cancel" Text="Annulla"></asp:LinkButton>
                        </EditItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" 
                                CommandName="Edit" Text="Modifica"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                CommandName="Delete" Text="Elimina"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                    <asp:TemplateField ShowHeader="False">
                        <InsertItemTemplate>
                            <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="True" 
                                CommandName="Insert" Text="Inserisci"></asp:LinkButton>
                            <asp:LinkButton ID="LinkButton2" runat="server" CausesValidation="False" 
                                CommandName="Cancel" Text="Annulla"></asp:LinkButton>
                        </InsertItemTemplate>
                        <ItemTemplate>
                            <asp:LinkButton ID="LinkButton3" runat="server" CausesValidation="False" 
                                CommandName="New" Text="Nuovo"></asp:LinkButton>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Fields>
                <HeaderStyle BackColor="#6B696B" Font-Bold="True" ForeColor="White" />
                <EditRowStyle BackColor="#CE5D5A" Font-Bold="True" ForeColor="White" />
                <AlternatingRowStyle BackColor="White" />
            </asp: DetailsView>
        
        </div>
        </form>
    </body>
    </html>

  2. #2

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.