Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Selezione multipla in Gridview e Crystal Report
lunedì 01 dicembre 2014 - 10.23
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 4.0
|
Visual Studio 2010
base_b
Profilo
| Newbie
27
messaggi | Data Invio:
lun 1 dic 2014 - 10:23
Buongiorno a tutti e buon dicembre,
mi rivolgo a voi per chiudere il cerchio in un progetto a cui sto lavorando ora. Diciamo che ho fatto da me il 95% (almeno spero...) ma mi manca un ultimo consiglio.
Ho un'applicazione Asp.net (in Vb) che gestisce i tesseramenti di un'associazione. Ho creato una pagina in cui in una gridview sono elencati tutti i soci che hanno rinnovato la tessera. In pratica dovrei far si che selezionando n. soci mi elabori la stampa delle etichette per le buste che userò per spedire la tessera.
Ho inserito nella gridview una colonna come "ItemTemplate" e c'ho messo all'interno un checkbox per consentire la scelta multipla.
In Code Behind ho detto che per ogni riga selezionata nella gridview, devo selezionare l'ID presente in anagrafica, filtrare la tabella, salvare in un dataset ed utilizzare i dati in esso contenuti per un report in Crystal reports in cui ho creato le etichette.
Funziona praticamente tutto tranne il fatto che:
- non so come dire: pulisci il dataset e rielabora la richiesta
- mi elabora solo l'ultima riga in cui ho selezionato il checkbox. Quindi credo di aver sbagliato, oppure omesso, qualcosa nel code-behind.
PS: per capire se i dati selezionati erano corretti in fase di sviluppo avevo aggiunto un secondo gridview per evitare l'elaborazione del report.
Questo è il contenuto della pagina:
<asp:Button ID="CheckAll" runat="server" Text="Check All" />
<asp:Button ID="UncheckAll" runat="server" Text="Uncheck All" />
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="ID" DataSourceID="SqlDataSource1">
<Columns>
<asp:TemplateField HeaderText="Seleziona">
<ItemTemplate>
<asp:CheckBox ID="RowSelector" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="ID" HeaderText="ID" ReadOnly="True" SortExpression="ID" Visible="False" />
<asp:BoundField DataField="Cognome" HeaderText="Cognome" SortExpression="Cognome" />
<asp:BoundField DataField="Nome" HeaderText="Nome" SortExpression="Nome" />
<asp:BoundField DataField="Data" HeaderText="Data" SortExpression="Data" DataFormatString="{0:dd/MM/yyyy}" />
<asp:BoundField DataField="Tessera" HeaderText="Tessera" SortExpression="Tessera" />
</Columns>
</asp:GridView>
<asp:GridView ID="GridView2" runat="server">
</asp:GridView>
<asp:Button ID="Button2" runat="server" Text="Elabora Etichette" OnClick="Button2_Click" />
<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:GestioneSociConnectionString %>" SelectCommand="SELECT [ID], [Cognome], [Nome], [Data], [Tessera] FROM [V_SelezioneXEtichette]"></asp:SqlDataSource>
<CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Height="1202px" ToolPanelWidth="200px" Width="1104px" />
Questo è il codebehind:
Protected Sub Button2_Click(sender As Object, e As EventArgs)
If Not IsPostBack Then
Dim dt As DataTable
Dim sConstr As String = ConfigurationManager.ConnectionStrings("GestioneSociConnectionString").ConnectionString
For Each row As GridViewRow In GridView1.Rows
Dim cb As CheckBox = row.FindControl("RowSelector")
If cb IsNot Nothing AndAlso cb.Checked Then
Dim IDN As Integer = Convert.ToInt32(GridView1.DataKeys(row.RowIndex).Value)
Dim SQL As String = "SELECT * FROM [V_SelezioneXEtichette] Where ID='" & IDN.ToString() & "'"
Using conn As New SqlConnection(sConstr)
Using comm As New SqlCommand(SQL, conn)
conn.Open()
Using da As New SqlDataAdapter(comm)
dt = New DataTable("tbl")
da.Fill(dt)
End Using
End Using
GridView2.DataSource = dt
GridView2.DataBind()
Dim Etichette As ReportDocument = New ReportDocument()
Dim reportPath As String = Server.MapPath("Etichette.rpt")
Etichette.Load(reportPath)
Etichette.SetDataSource(dt)
CrystalReportViewer1.ReportSource = Etichette
End Using
End If
Next
End If
End Sub
Qualcuno mi sa dire come fare ad avere tutte le righe selezionate?
Grazie Mille
Barbara
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !