Problemi con corfirm ondeletecommand - urgente

mercoledì 23 novembre 2005 - 15.12

adry_tssj Profilo | Newbie

Ciao!
Avevo già postato su questo argomento, ma nonostante le risposte, non sono riuscita a procedere...
Allego la pagina che mi interessa abbia il confirm sull'elimina...
magari qualcuno mi può aiutare a capire dove mettere il codice javascript, le chiamate e che codice devo mettere per fare il collegamento a javascript??
Ho già guardato gli altri msg sul forum ma non ho capito...

Grazie
Ciao, ciao

micto27 Profilo | Senior Member

provo ad accennare qualche spunto:

nella proc associata a OnDeleteCommand, anzichè dar luogo alla cancellazione puoi ativare una pagina dedicata alla conferma ed in ques'altra pagina eseguire la DELETE sul database e poi ritornare alla pagina di partenza;

in alternativa alla nuova pagina potresti anche prevedere 2 pannelli, visibili in modo esclusivo, sulla pagina stessa. In questo caso OnDeleteCommand determinerebbe la visualizzazione del pannello sul quale vestire la richiesta di conferma.

Ovviamente nei 2 casi illustrati vieni ad avere un postback in più.

Pensando di evadere il problema conferma direttamente lato client forse potresti fare così:
- rinunciare a "OnDeleteCommand",
- inserire al DataGrid una TemplateColumn nella quale vai a posizionare un controllo di tipo Hyperlink che avrà come testo "Elimina" e come NavigateUrl: javascript:conferma(xxxxxxx);
- sfruttando l'evento ItemDataBound andresti a configurare, per ogni datagrid item la proprietà NavigateUrl del suddetto Hyperlink in modo da costruire i parametri della funzione javascript coerentemente con i dati esposti sul datagrid.
- la funzione javascript "conferma" a questo punto dovrebbe occuparsi di rendere visibile un pannello (<DIV>.....</DIV>) presente sulla pagina con uno syle che prevede visibility=hidden e il posizionamento assoluto.
- in questo DIV andresti a mettere il testo della richiesta conferma, i pulsanti Si/No e uno o più campi Hidden (magari con runut=server) per registrare gli estremi del record da trattare.
- dei 2 pulsanti il NO non farà altro che rinascondere il DIV mentre il SI attiverà il postback sul quale potrai gestire la cancellazione prelevando dai campi hidden la chiave del record.

Una di queste può andare?

Ciao, Michele


adry_tssj Profilo | Newbie

Ti ringrazio per la risposta...
In fase attuale stavo tentando di risolverlo con l'OnItemCreated del datagrid...
E ho scritto questa funzione:

Sub dG1(ByVal sender As Object, ByVal e As DataGridItemEventArgs)
if (e.Item.ItemType = ListItemType.Item) OrElse (e.Item.ItemType = ListItemType.AlternatingItem) Then
Dim btn As LinkButton = TryCast(e.Item.Controls.Item(0).Controls.Item(0),LinkButton)
If Not (btn Is Nothing) Then
btn.Attributes.Add("OnClick","return confirm('Sei sicuro di voler cancellare il prodotto?');")
End if
End If
End Sub

Però, purtroppo, mi dà errore sul TryCast in quanto non me lo riconosce come funzione e mi dice che non è dichiarato...
Qualcuno sa dirmi dove sbaglio??

Grazie
Ciao

Adry
_______________________________________________________

Lascia di quando in quando per me qualche sorriso, e ne avrò vita.
- W. Shakespeare -
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5