2009-02-16 8 views
15

Ho aggiunto il pulsante di comando nelle mie griglie asp.net. Dopo aver eseguito un'azione utilizzando quel pulsante, aggiorniamo la griglia per riflettere i nuovi dati. (in pratica questa azione duplica la riga della griglia).Aggiorna la pagina dopo un'azione di postback in asp.net

Ora quando l'utente aggiorna la pagina utilizzando F5, viene visualizzato un messaggio di avviso (per inviare nuovamente le informazioni al server) se si seleziona "riprova", l'azione viene ripetuta automaticamente.

So che questo è un problema comune in asp.net, come possiamo gestirlo al meglio?

risposta

2

Se pensate di non aver bisogno del paradigma postback, potreste voler dare un'occhiata a ASP.NET MVC.

1

Se ho capito bene, è sufficiente verificare se ci si trova in una situazione di post-back prima di compilare la propria rete.
si Supponendo farlo su Page_Load, semplicemente circondare l'operazione con test post-back in questo modo:

private void Page_Load(object sender, EventArgs e) 
{ 
    if(!this.IsPostBack) 
    { 
     // populate grid 
    } 
} 
1

è necessario chiamare Response.Redirect (Request.Url.ToString());

o si può avvolgere la griglia con UpdatePanel e dopo ogni comando BIND l'origine dati alla rete

2

Il problema è che i pulsanti ASP.NET eseguono i messaggi modulo quando si preme un pulsante. Se si sostituisce il pulsante con un collegamento il problema dovrebbe andare via. Puoi anche utilizzare un pulsante che esegue una funzione javascript che imposta il documento.location all'indirizzo della tua pagina.

1

Dentro il tag <asp:Repeater> mettere questo:

EnableViewState="false" 

Questo farà sì che il vostro controllo per aggiornare ogni volta che la pagina viene caricata, non importa se si tratta di un postback o meno.

+0

Come mai nessuno ha dato una risposta a questa risposta? – slamsal

+0

Non ha funzionato per me. – Andy

-1

ad esempio: se si fa clic su "pulsante" il sistema catturerà l'evento "button_click". se si aggiorna la pagina, il sistema eseguirà nuovamente lo stesso evento. a don t avere questo problema, nel vostro inserto evento: sul vostro evento

private void button_click(object sender, System.EventArgs e) 
{ 
    button.Enabled =false; 
    button.Enabled =true; 
} 

è quello che volevi dire?

+1

Questo non è affatto la domanda. –