308 messaggi dal 13 luglio 2005
Ciao bacco82,
evvaaaiiii il codice vaaaa... !!! Grazie per i preziosi consigli!
Ho creato una Function che riceve in ingresso l'IDGruppoLavoro e restituisce una collection degli indici di priorità relativi a quell'IDGruppoLavoro, questa collection l'ho assegnata come DataSource alla DropDownList e... va...!

Approfitto della tua disponibilità per chiederti, a questo punto, un altro "quesito" ...

Al cambiare della selezione del DropDownList (che ha l'AutoPostBack) dovrei "scatenare" la modifica di tutte le priorità. Allora i problemi sono due:

1) un alert JavaScript dovrebbe chiedermi se sono sicuro di voler fare il cambiamento.
2) a conferma avvenuta, richiamare un metodo (e questo sono riuscito a farlo) e all'interno di questo metodo ricavare il nuovo valore della selezione della DropDownList (e anche questo ce l'ho ...) e soprattutto l'ID del record a cui si riferisce quella DropDownList che ha scatenato il PostBack (e questo mi manca  ).

Ovviamente l'ID a cui mi riferisco è un campo della tabella, i cui campi (ti ricordo) sono:
- ID
- DescrizioneAttivita
- IDGruppoLavoro
- IndicePriorita

e tutti questi campi sono "mostrati" nella GridView (a parte IndicePriorita che è la selezione della DropDownList).

Puoi darmi ancora una mano?

Ciao.

Umb

P.S.: ... ma dai VB non è poi così brutto ... ormai col .NET C# e VB si sono avvicinati moltissimo ... una volta magari ...
69 messaggi dal 20 gennaio 2006
www.jntstudio.net
Ottimo, mi fa piacere che sei riuscito alla fine.
Per avere un bel confirm javascript, puoi agire sempre dallo stesso evento RowCreated ed attaccare l'event handler in javascript per gestire l'evento onClientClick.

protected void gvLavori_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton btn = e.Row.Cells[4].Controls[0] as ImageButton;
btn.OnClientClick = "if (confirm('Sei sicuro?') == false) return false;";
}
}

Questo è 1 approccio, poi, ad esempio c'è anche l'alternativa di AJAX, nel toolkit di ajax c'è anche un extender che si occupa proprio di questo.

Per avere associato l'id oltre al valore nella dropdownList ti basta chiamare selectedIndex sia per scriverci dentro l'id sia per leggerlo

JackNova (Dario Iacampo)
107 messaggi dal 26 marzo 2001
Se non hai tantissimi dati puoi anche mettere un datasource all'interno di una template column e fare il binding relativamente ad una paramentro presente su ogni singola riga. (praticamente non scrivi una riga di codice)

Ciao e auguri.

___________________
Emilio Reale
MCP ID: 3355694 MCSD MCDBA MCSE
308 messaggi dal 13 luglio 2005
Ciao ereale,
grazie anche te per la risposta (ricambio gli auguri) ,
quello che mi dici non mi è molto chiaro  ... non è più o meno quello che ho già fatto?

Tu mi dici di creare un datasource direttamente nel template column, io, invece l'ho creato nell'evento RowCreated ... ho capito male? Potresti farmi un esempio più esplicativo?

E poi come ricavo il parametro (ovvero l'IDGruppoLavoro, che si trova in un altra colonna della GridView, nella stessa riga) da passare al datasource?

Ciao

Umb
308 messaggi dal 13 luglio 2005
Ciao bacco82,
ho cercato di provare il codice che mi consigli, ma ci sono un paio di cose che non mi tornano ...

Se non ho capito male (ma perchè sei sempre così "criptico?"  ) mi consigli di aggiungere un bottone e nell'evento "onClick" mettere il controllo javascript ... è così? ...veramente pensavo di utilizzare l'AutoPostBack della DropDownList ...

Secondo dubbio: mi dici di inserire l'ID nel selectedIndex della DropDownList, ma mi da un errore che dice all'incirca: "... selectedIndex e selectedValue si annullano a vicenda ...", quindi posso usare solo uno dei due ...

Puoi spiegarmi più chiaramente cosa dovrei fare?

Grazie per la tua pazienza, ciao.

Umb
69 messaggi dal 20 gennaio 2006
www.jntstudio.net
...scusami ma non ho mai tantissimo tempo a disposizione...

Il codice che ho postato prima è pressappoco completo per il confirm in javascript

protected void gvLavori_RowCreated(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
ImageButton btn = e.Row.Cells[4].Controls[0] as ImageButton;
btn.OnClientClick = "if (confirm('Sei sicuro?') == false) return false;";
}
}

devi solo cambiare in e.Row.Cell .Controls per individuare la posizione del tuo bottone. Questa è la soluzione più rapida: intercetti il click e prima di procedere chiedi conferma con javascript... Un postback, come avevi intenzione tu è inaccettabile come soluzione a mio modestissimo parere.

Per quanto riguarda il selectedIndex e selectedValue non provare a scrivere in entrambi: selectedValue lascialo come lo stavi già usando; dropdownlist.selectedIndex usalo dove ti serve l'id.

puoi calcolarlo da codice ma se non ho chiara tutta la situazione è un po' difficile aiutarti: dovrei scrivere tutto io da zero...

JackNova (Dario Iacampo)

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.