Bottoni che noia

lunedì 24 ottobre 2005 - 14.12

ilpako Profilo | Junior Member

ho un problema con un bottone all'interno di un form.perchè quando clikko per effettuare la query di inserimento dati,prima di attivare l'evento onclick si passa per pageload?ho bisogno di tenere il link della pagina kiamante quando faccio submit col bottone.in questo caso se si attiva pageload prima dell'evento onclick, la pagina kiamante è quella corrente non quella che effettivamente mi ha linkato al form...

Brainkiller Profilo | Guru

Ciao,
attenzione per definizione in ASP.NET 1.1 quando fai un submit della pagina premendo sul pulsante viene fatto sulla pagina stessa. Quindi avrai la possibilità di avere la pagina precedente perchè è sempre la stessa.

In ASP 3.0 era diverso, ma in ASP.NET 1.1 non si può. In ASP.NET 2.0 sarà di nuovo possibile eseguire il postback su un'altra pagina (crosspage postback).

Se non vuoi eseguire il codice all'interno del Page_Load è sufficiente inserire il controllo:

If Not Page.IsPostback Then
...
End If

Ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

ilpako Profilo | Junior Member

non mi sono spiegato...io devo differenziare il comportamento del bottone nel form (costruisce una query di inserimento dati) a seconda della pagina ke kiama quella in cui esso è contenuto.Se la kiama una certa pagina deve inserire i dati nel db, se la kiama un'altra pagina deve costruire una stringa (query sql) da mandare alla pagina kiamante senza però inserire i dati nel db.Il problema che debuggando mi accrgo che prima di arrivare alla classe dell'evento onclick viene effetuato un pageload.In questo modo la pagina kiamante diventa la stessa pagina che contiene il form...

ilpako Profilo | Junior Member

dimenticavo...ilmio scopo rimane sempre lo stesso http://www.dotnethell.it/forum/messages.aspx?ThreadID=4930

e.disanto Profilo | Junior Member

Non sono sicuro di aver compreso pienamente le tue intenzioni, ma se non ho capito male c'è una pagina che può effettuare diverse operazioni e, sempre in questa pagina, c'è un bottone che lancia le diverse operazioni in base alla pagina chiamante; se sei arrivato alla pagina tramite la pagina "A", cliccando il pulsante fai una determinata cosa, se ci sei arrivato dalla pagina "B", cliccando il pulsante fai un'altra cosa, ecc. Giusto???
Beh, se è così potresti pensare di richiamre la pagina contenente il pulsante passando anche un parametro... così nella pagina "A" passerai "?operazione=a", nella pagina "B" passerai "?operazione=B", e all'interno del Page_Load definisci le diverse operazioni da fare...
Spero di averti aiutato (sempre se ho capito bene quello che ti serve ;-)...)

Ernesto di Santo
Analista Programmatore .NET

ilpako Profilo | Junior Member

qui spiego meglio...http://www.dotnethell.it/forum/messages.aspx?ThreadID=4930

ilpako Profilo | Junior Member

la mia pagina A effettua l'inserimento dati nel database utilizzando tre forms ognuno in una pagina diversa B,C,D (una sorta di inserimento step by step come la registrazione dati in un provider) accessibili tramite link sulla pagina principale A.Quindi ho bisogno innanzitutto che i dati di questi tre forms non vengano subito inseriti nel db tramite le pagine B,C,D ma vengano inviati alla pagina A,sottoforma di query(stringhe), e poi inseriti nel db tramite la pagina A.
Il problema è che queste tre pagine B,C,D possono essere utilizzate anche singolarmente se kiamate da un'altra pagina X, e in questo caso i dati possono essere direttamente inseriti nel db.

Quindi in base alla pagina kiamante il bottone del submit presente nelle pagine B,C,D deve fare due azioni diverse:
-o inserisce i dati direttamente nel db nel caso la kiamante sia X
-oppure invia la query di inserimento alla pagina kiamante A che provvederà a raccoglierla insieme alle query delle altre pagine e a fare un unico inserimento.

Le pagine B,C,D le utilizzo due volte ma in contesti diversi kiaro?è inutile creare una pagina che ha un form al suo interno che è già stato creato,anche se spezzettato in altre pagine.
Spero di essere stato kiaro


PEPE Profilo | Senior Member

Ciao,
io per risolvere una situazione del genere ho usato una tabellilla in sessione leggerissima dove tengo traccia delle operazioni fatte.
Nel tuo caso farei in questo modo: creo una tabella con colonne a b c e ci metto i valori 0 0 0. Ogni volta che finisci uno step metti ad 1 l'indice della relativa colonna che si riferisce alla pagina completata.
Poi non devi far altro che controllare che nella tabella siano presenti tutti 1 per effettuare l'inserimento.

Se non vuoi usare la sessione (dato che molti la sconsigliano) fatti una variabile a livello di classe che recuperi con il server.trasfer.
In questo modo con un po di controlli ottieni lo stesso risultato.

Spero di aver capito bene il tuo problema e spero di essere riuscito a darti un possibile aiuto.

Ciao,
Luca.

PEPE Profilo | Senior Member

ahh dimenticavo...
Puoi usare anche una stringa con un marcatore che divide le colonne tipo:

Stringa= 1#0#0;

Poi in ogni pagina fai le docute operazioni.

ilpako Profilo | Junior Member

grazie mille ragazzi...provo subito

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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5