2011-12-23 14 views
5

私たちは機密性の高いデータを処理する成熟したアプリケーションを持ち、数百ページのページとコントロールに成長しました。現在、アプリケーション全体のすべてのフォームとテキストボックスに対してautocomplete = offを設定する必要があります。私はこれを行うグローバルなweb.config設定があるとは思わないので、何が最善の方法でしょうか?私の最初の考えは、(すべてのページが継承する)PageBaseクラスを使用して、すべてのFormおよびTextBoxコントロールを動的に検索し、属性autocomplete = "off"を動的に追加することでした。これは合理的か、それとも良い方法がありますか?推奨事項をありがとう。ASP.NETアプリケーションに対してオートコンプリート=オフをグローバルに設定するにはどうすればよいですか?

答えて

5

すべてのページにマスターページがある場合は、マスターページでJqueryを使用して入力コントロールのオートコンプリートを無効にしてください。

あなたはマスターページにちょうどあなたのフォーム要素ではなく、すべての単一のコントロールにオートコンプリート=「オフ」を追加

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

残念ながら、私たちはマスターページを使用していませんが、たくさんの埋め込みアスキーコントロールを持つaspxページの集まりです。 –

+1

@ SolidPerformer:どこでも使用されるユーザーコントロールに配置します。かなりのASP.NET 1.xが好きでしたが、それは当時の仕事でした。 – XIII

+0

マスターページ... MVCの共有ページのようですか?他のページがプロパティを継承するページを共有しています。その行を共有ページにリストするだけでいいですか? –

3

てみてください以下のコードを配置することができます。少なくともIEでは、これはフォーム内のすべてのコントロールのためにオフにする必要があります。

何らかの理由でマスターページを使用できない場合、継承は欲しいものを達成するための合理的な方法です。あなたはすでにそれをしなかった場合

+0

フォーム要素でautocomplete = "off"を使用すると、Firefox 11で動作します。 –

7

、必ずそれはgood practiceだとプロジェクトは徐々にmonsterになったときに、それは後から多くのことを助け、BasePageinheritsそれからすべてのページを使用しよう.....と、このシナリオでは。..それはあなたがして共有ビュー/の下に、MVCを使用している場合は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はサーバー側のバージョンです。 – Cesar

1

だ、Pavanが言ったように、あなたの_Layout.csstml に追加します。

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

をあなたには、いくつかのコントロールをしたい場合は、WOへrk、いくつかは使用しないでください:

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

myInputboxNameは、あなたがコントロールのIDを呼び出した名前です。

関連する問題