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 valori in gridview e passaggio a nuova pagina
sabato 09 maggio 2009 - 14.38
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
sab 9 mag 2009 - 14:38
Ciao a tutti, ho un grid view con un checkbox
come posso passare ad una pagina i valori selezionati?
avevo pensato di salvare gli elementi selezionati in un variabile sessione.... ma quale soluzione mi consigliate di adottare per iterare gli elementi selezionati .... e come salvarli nella sessione?
ho trovato un esempio on line ma ho due dubbi:
1) Control come lo gestisco?? cosa devo includere tramite l'using?? (googlando non l'ho capito)
2) Come recupero l'ID del mio checkbox??
protected void btnProsegui_Click(object sender, EventArgs e)
{
//Elenco attività selezionate
IList<int> keys = new List<int>();
GridViewRowCollection rowCollection = gvElenco.Rows;
foreach (GridViewRow gridRow in rowCollection)
{
Control ctl = gridRow.FindControl("chkAttivita");
if (ctl is CheckBox)
{
CheckBox chk = (CheckBox)ctl;
if (chk.Checked)
{
int key = chk.; //Come recupero l'ID dell'attività selezionata??
keys.Add(key);
}
}
}
dove nell'HTML
<Columns>
<asp:TemplateField ShowHeader="False" ItemStyle-Width="10">
<ItemTemplate>
<asp:CheckBox ID="chkAttivita" runat="server" />
</ItemTemplate>
<ItemStyle Width="30px"></ItemStyle>
</asp:TemplateField>
<asp:BoundField DataField="DescrizioneAttivita" HeaderStyle-HorizontalAlign="Left" ItemStyle-HorizontalAlign="Left" HeaderText="Descrizione" SortExpression="DescrizioneAttivita" meta:resourcekey="BoundFieldResource2" />
</Columns>
Dampyr
Profilo
| Junior Member
169
messaggi | Data Invio:
lun 11 mag 2009 - 12:27
Ciao, quello che devi fare è una bella rogna che mi sono ritrovato in parecchi casi.
Io non mi sono mai trovato con la GridView, ma credo non cambi nulla.
Fondamentalmente il problema è la mancanza di una proprietà nella check tipo "CommandName" (presente nel LinkButton ad esempio).
Io quando mi sono trovato in queste situazioni, per fare le cose velocemente ho sempre inserito nella prima colonna (magari settata invisibile) un controllo (ottima la Label o il Literal) al quale associo l'ID_attività, nel tuo caso, o il valore che voglio passare.
Quando cicli le righe, ti vai a rilevare il valore della checkBox, e nel caso sia positiva ti becchi l'ID dal controllo nascosto nella prima colonna.
(Che sia la prima colonna per comodità mia, ma puoi mettere il controllo dove più ti piace).
In alternativa ti puoi creare un control che eredita da CheckBox al quale aggiungi una proprietà del tipo CommandName, ma in questo caso per mantenere il valore ai postback o altri ammennicoli devi andarti a leggere come si creano i CustomControl (o UserControl).
La seconda strada la trovo la più pulita e riusabile anche in futuro, ma dipende dal tempo e dalla conoscenza nella creazione di controlli personalizzati.
Buon lavoro
[AGGIUNTA] cercando in Google ho trovato anche questa idea, un barbatrucco carino usando i CSS, da provare per vedere cosa succede
http://www.codeproject.com/KB/aspnet/CheckBoxCommand.aspx
... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...
mrub
Profilo
| Junior Member
51
messaggi | Data Invio:
lun 11 mag 2009 - 13:57
Una soluzione semplice anche se poco elegante può essere
<ItemTemplate>
<asp:CheckBox ID="chkAttivita" runat="server" />
<asp: Label ID="IDattivita" text='<%# Bind("IDattivita") %>' visible="False"/>
</ItemTemplate>
protected void btnProsegui_Click(object sender, EventArgs e)
{
//Elenco attività selezionate
IList<int> keys = new List<int>();
GridViewRowCollection rowCollection = gvElenco.Rows;
foreach (GridViewRow gridRow in rowCollection)
{
Control ctl = gridRow.FindControl("chkAttivita");
if (ctl is CheckBox)
{
CheckBox chk = (CheckBox)ctl;
if (chk.Checked)
{
int key = gridRow.FindControl("IDattivita").Text;
keys.Add(key);
}
}
}
squilibrio
Profilo
| Expert
527
messaggi | Data Invio:
mar 12 mag 2009 - 00:03
grazie mille a tutti!!!
provo subito!!!
Dampyr
Profilo
| Junior Member
169
messaggi | Data Invio:
lun 25 mag 2009 - 13:52
>grazie mille a tutti!!!
>
>
>provo subito!!!
Ciao, hai provato?!?!? Sarebbe cosa buona e giusta accettare le risposte se hai risolto o dare un feedback se non ti sono servite e hai risolto in altro modo.
Ciao
... cerca di essere il giocatore di scacchi, non il pezzo sulla scacchiera...
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 !