Consiglio su gridview

lunedì 21 marzo 2011 - 17.09
Tag Elenco Tags  C#  |  .NET 2.0  |  .NET 3.0  |  .NET 3.5  |  .NET 4.0  |  Visual Studio 2008  |  Internet explorer 8.0  |  Firefox

n3mesi Profilo | Newbie

Ciao a tutti,
ho una pagina aspx dove all'evento onload carico i dati che prendo da una query su MySql in una gridview.
Ora vorrei al doppio click su una riga, aprire una form con i dettagli del record selezionato.
Io pensavo ad una finestra modale per i dettagli, ma stavo leggendo che è poco pratica e poco usabile.
Ho letto un paio di articoli sulle master/details, e qualcuno proponeva di mettere una listview sulla stessa pagina della gridview...io volevo evitare questa soluzione, perchè la gridview ha molte righe e non vorrei aggiungere troppe cose sulla stessa pagina, con il rischio che poi devo scendere troppo con lo scroll.
Qual'è la soluzione migliore secondo voi? Io stavo pensando di mettere due panel per evitare la modale, il primo che contiene la gridview, ed il secondo (invisibile) che contiene una listview (o comunque altri controlli). Al doppio click rendo invisibile il primo pannello e visibile il secondo, caricando la listview con i dettagli relativi la righa cliccata, e con un pulsante "back" che fa il contrario, rende visibile il primo pannello ed invisibile il secondo.
Che dite, può essere una soluzione?

alexmed Profilo | Guru

Ciao
Avrei questa idea da proporti.
Per farti capire cosa intendo guarda qui: http://docs.jquery.com/UI/Accordion

Lascierei perdere il controllo GridView ed utilizzerei un ListView impostando nel <HeaderTemplate> una tabella per i titoli e nel <ItemTemplate> metterei un'altra tabella con 2 righe:
Nella prima inserisci i valori "Master" e nella seconda, all'interno di un div vai a mettere i Details.
Ora tramite una piccola funzione jQuery associato ad un button fai apparire e scomparire questa seconda riga.

Ora un pò di codice

nell' <head> della pagina:

<script type="text/javascript" src="Js/jquery-1.4.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("input[id^=Btn_]").click(function() { $(".myDiv").slideUp(1000); var progressivo = this.id.toString().split("_")[1]; if ($("#div_" + progressivo).css("display") == "none") { $("#div_" + progressivo).slideDown(1000); $(this).val("Chiudi"); } else { $("#div_" + progressivo).slideUp(1000); $(this).val("Apri"); } }); }); </script>

Nel <body> :

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra


Per scaricare jQuery (http://docs.jquery.com/Downloading_jQuery)

Fammi sapere

Ciao

alexmed

n3mesi Profilo | Newbie

Soluzione interessante!!

Grazie mille!
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