2011-12-23 10 views
5

Tenemos una aplicación madura que maneja datos confidenciales y ha crecido a varios cientos de páginas y controles. Ahora es un requisito establecer autocompletar = apagado para todos los formularios y cuadros de texto en toda la aplicación. No creo que haya una configuración global de web.config que pueda hacer esto, ¿cuál sería la mejor manera? Mi idea inicial fue utilizar una clase PageBase (de la que heredan todas las páginas) para encontrar dinámicamente todos los controles de Form y TextBox y agregar dinámicamente el atributo autocomplete = "off". ¿Esto parece razonable o hay una mejor manera? Gracias por cualquier recomendación.Cómo configurar autocompletar = apagado globalmente para la aplicación ASP.NET?

Respuesta

5

Si todas sus páginas tienen página maestra, intente deshabilitar la función autocompletar para los controles de entrada utilizando Jquery en la página maestra.

puede colocar el código de abajo en la página maestra

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

Desafortunadamente, no estamos utilizando páginas maestras, sino una colección de páginas aspx con muchos controles incrustados de ascx. –

+1

@ SolidPerformer: luego colóquelo en un control de usuario que se usa en todas partes. Bastante ASP.NET 1.x me gusta pero funcionó en aquel entonces. – XIII

+0

Página maestra ... ¿es como una página compartida en MVC? He compartido una página de la que otras páginas heredan propiedades. ¿Debo enumerar esa línea en la página compartida? –

3

Trate de añadir autocomplete = "off" para sólo su elemento de formulario en lugar de cada control único. Al menos en IE esto debería apagarlo para todos los controles dentro del formulario.

Sí, si por algún motivo no tiene la capacidad de utilizar una página maestra, la herencia es una forma razonable de lograr lo que desea.

+0

El uso de autocompletar = "off" en el elemento de formulario funciona en Firefox 11. –

7

siempre intenta utilizar un BasePage y inherits todas las páginas de él, es un good practice y ayudan mucho más tarde cuando el proyecto poco a poco convertirse en un monster ..... y en este escenario si ya lo hizo entonces .. es 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 para la versión del lado del servidor. – Cesar

1

Si está utilizando MVC, a continuación, en Vistas/Shared, agregarlo a su _Layout.csstml Como dijo Pavan:

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

Si quieres algunos controles a wo rk, y algunos no se utilizan:

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

myInputboxName es el nombre que ha llamado id del control.

Cuestiones relacionadas