Generare stampa attraverso flag di una gridview

mercoledì 05 settembre 2012 - 17.08

eurodencer87 Profilo | Newbie

Buongiorno a tutti, io ho un problema su una generazione di un form da una grid view.

In una form ho una GridView con un elenco di 'clienti', attraverso la scleta dei clienti con una checkbox e successivamente attraverso un bottone viene aperta una form dove ci sono i dati riepilogativi dei 'clienti' selezionati .

es.

FORM 1

GridView

Stampa Nome
Si Pippo
No Pluto
Si Paperino
Si MInni

stampa(bottone)

------------------------------------------------------------------
FORM 2

Cliente: Pippo
Indirizzo: xxxxxxxxxxx

Cliente: Paperino
Indirizzo: xxxxxxxxxxx

Cliente: Minni
Indirizzo: xxxxxxxxxxx

------------------------------------------------------------------

Volevo sapere se avevate qualche idea sui comendi o su come impostare la form di stampa

Gluck74 Profilo | Guru

metodo 1 - Classic ASP.NET

cliccando sul bottone "stampa" avviene il postback della pagina, quindi nell'evento click del bottone stampa, puoi mettere questo codice:
List<int> selectedRowID = new List<int>(); // Iterate through the Products.Rows property foreach (GridViewRow row in myGrid.Rows) { // Access the CheckBox CheckBox cb = (CheckBox)row.FindControl("chkSelector"); if (cb != null && cb.Checked) { // First, get the ID for the selected row int rowID = Convert.ToInt32(myGrid.DataKeys[row.RowIndex].Value); // "Delete" the row selectedRowID.Add(rowID); } }
a questo punto dentro selectedRowID hai tutti gli id delle righe selezionate. Lo dai in pasto alla funzione che riempie il form per prelevare tutti i dati necessari.


Metodo 2 - ASP.NET AJAX

se conosci un poco questa tecnologia, puoi creare un'interazione un po' più carina.
Necessita una conoscenza di javascript, jQuery, webservice.
se sai smanettare un po' con questi, ti dirò come sviluppare questa soluzione, altrimenti inutile mettere troppa carne al fuoco.

ciao fammi sapere
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

eurodencer87 Profilo | Newbie

Ciao, prima di tutto grazie mille per la risposta :)

volevo utilizzare il tuo primo metodo che hai suggerito, quindi se ho capito bene devo utilizzare la funzione che mi hai suggerito, trasferendo i dati in una tabella temporanea che verrà agganciata alla stampa.
l'unico picco problema è se riesci a darmi la funzione in vb.net

secondo te potrebbe andare bene?

Grazie Mille

Gluck74 Profilo | Guru

no, niente tabelle temporanee, non ne hai bisogno.

Supponi che il codice scritto nel post precedente sia dentro una funzione che restituisce un array/List
List<int> IDselezionati = getSelezionati(this.nomeDellaGriglia); //in VB dovrebbe essere (sono molto arrugginito): Dim IDselezionati as List(of int) = getSelezionati(Me.nomeDellaGriglia)

ora, basta che ti fai una funzione che prende in ingresso questi dati, estrae dal database i tati relativi agli ID passati e li restituisce sotto forma di DataTable/List/DataReader eccc eccc ecc.
Basta che dai in pasto questi dati al controllo successivo che potrebbe essere una semplice gridView, piuttosto che un ListView:
listViewStampa.DataSource = getdatiByID(IDSelezionati) listViewStampa.DataBind()

ciao
____________
http://glucolo.wordpress.com
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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 !
Copyright © dotNetHell.it 2002-2017
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5