2011-12-23 15 views
5

Abbiamo un'applicazione matura che gestisce i dati sensibili ed è cresciuta fino a diverse centinaia di pagine e controlli. Ora è obbligatorio impostare autocomplete = off per tutti i moduli e le caselle di testo nell'intera applicazione. Non credo che ci sia un'impostazione globale di web.config che farebbe questo, quindi quale sarebbe il modo migliore? Il mio pensiero iniziale era quello di utilizzare una classe PageBase (da cui tutte le pagine ereditano) per trovare dinamicamente tutti i controlli Form e TextBox e aggiungere dinamicamente l'autocomplete attributo = "off". Questo sembra ragionevole o c'è un modo migliore? Grazie per eventuali consigli.Come impostare il completamento automatico = disattivato globalmente per l'applicazione ASP.NET?

risposta

5

Se tutte le pagine hanno una pagina principale, provare a disabilitare il completamento automatico per i controlli di input utilizzando Jquery nella pagina principale.

è possibile inserire il codice qui sotto nella pagina master

$(document).ready(function() { $("input").attr("autocomplete", "off"); }); 
+0

Purtroppo, non stiamo usando le pagine master, ma una raccolta di pagine aspx con molti controlli ASCX incorporati. –

+1

@SolidPerformer: posizionalo quindi su un controllo utente che viene utilizzato ovunque. Pretty ASP.NET 1.x piace ma ha funzionato allora. – XIII

+0

Pagina principale ... è come una pagina condivisa in MVC? Ho una pagina condivisa da cui altre pagine ereditano le proprietà. Devo solo elencare quella linea nella pagina condivisa? –

3

Prova ad aggiungere autocomplete = "off" per appena il vostro elemento di forma piuttosto che ogni singolo controllo. Almeno in IE questo dovrebbe spegnerlo per tutti i controlli all'interno del modulo.

Sì, se non si ha la possibilità di utilizzare una pagina principale per qualche motivo, l'ereditarietà è un modo ragionevole per ottenere ciò che si desidera.

+0

L'utilizzo di autocomplete = "off" sull'elemento del modulo funziona in Firefox 11. –

7

Cercate sempre di utilizzare un BasePage e inherits tutte le pagine da esso, è un good practice ed aiutare in seguito molto quando il progetto gradualmente diventare un monster ..... e in questo scenario se già lo ha fatto allora .. è one line code ...

public abstract class BasePage : Page 
{ 
    protected override void OnLoad(EventArgs e) 
    { 
     //Handling autocomplete issue generically 
     if (this.Form != null) 
     { 
      this.Form.Attributes.Add("autocomplete", "off"); 
     } 

     base.OnLoad(e); 
    } 
} 
+0

+1 per la versione lato server. – Cesar

1

Se si utilizza MVC, poi sotto Visualizzazioni/Shared, aggiungerlo al _Layout.csstml Come ha detto Pavan:

$(document).ready(function() 
{ 
    $("input").attr("autocomplete", "off"); 
}); 

Se si desidera che alcuni controlli per wo rk, e alcuni non usano:

$("#myInputboxName").attr("autocomplete", "off"); 

myInputboxName è il nome che hai chiamato l'id del controllo.

Problemi correlati