Invio della webform ad un'altra pagina con ASP.NET 1.x

di Daniele Bochicchio, in ASP.NET,

Una delle possibilità offerte da ASP.NET 2.0 è il nuovo meccanismo denominato CrossPostBack che consente di fare il PostBack di una pagina all'interno di un'altra.
Questo scenario non è possibile con ASP.NET 1.x, ma risulta comunque facile inviare i dati, alla pressione di un pulsante, ad un'altra pagina.
Il tutto consiste nell'usare un po' di Javascript e nel recuperare i valori, nella pagina a cui vengono inviati i dati, sfruttando semplicemente la collection Form della classe HttpRequest.
E' così possibile inserire, ad esempio, una form che permetta di effettuare ricerche in un'altra pagina, mantenendo al tempo stesso la possiblità di utilizzare i Validator Control.

<form runat="server" id="theform">
<asp:datagrid runat="server" />
Testo: <asp:textbox id="search" runat="server" />
<asp:button id="y" Text="PostBack normale" runat="server" />
<input type="submit" id="x" Value="PostBack su page2.aspx" OnClick="submitForm('page2.aspx');" runat="server"/>
</form>

<script type="text/javascript"><!--
function submitForm(url)
{
  // non possiamo usare il DOM sull'inpunt del ViewState, non ha l'attributo ID
  // 1) non serve passare il viewsate, nascondiamolo
  document.getElementById('theform').__VIEWSTATE.value='';
  document.getElementById('theform').__VIEWSTATE.name='noviewstate';
  // 2) cambiamo l'URL della form e facciamo il subimt
  document.getElementById('theform').action = url;
  document.getElementById('theform').submit();
}
//--></script>

Per un uso frequente di questa tecnica, la scelta migliore è quella di creare un custom control che ne incapsuli direttamente la logica.

Per approfondimenti sui Custom Controls, si veda:
https://www.aspitalia.com/liste/usag/script_ricerca_Custom_Control.aspx

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi