2009-08-20 15 views
-1

.NETプロジェクトVisual Studio 2008でツールチップをグローバルに無効にする方法はありますか? Webアプリケーションにツールチップを実装しましたが、テスト用にツールチップを無効にしたいと考えています。プロジェクトのDIsableツールチップ

答えて

0

あなたはそのためたControlAdapterを使用することができます。

namespace Your.Namespace 
{ 
    public class ToolTipsDisablerAdapter : System.Web.UI.WebControls.Adapters.WebControlAdapter 
    { 
     public static bool ToolTipsDisabled { get; set; } 

     protected override void Render(HtmlTextWriter writer) 
     { 
      if (ToolTipsDisabled && Control.ToolTip != string.Empty) 
      { 
       Control.ToolTip = string.Empty; 
      } 

      base.Render(writer); 
     } 
    } 
} 

アダプタのRenderメソッドは、それがリンクしているコントロールのいずれかの代わりに呼び出されます。 base.Renderを呼び出すと、アダプタのツールチップが変更された後、コントロールのRenderメソッドが呼び出されます。

アダプタが動作するブラウザ定義ファイルに登録する必要があります。

<browsers> 
    <browser refID="Default"> 
    <controlAdapters> 
     <adapter controlType="System.Web.UI.WebControls.WebControl" adapterType="Your.Namespace.ToolTipsDisablerAdapter" /> 
    </controlAdapters> 
    </browser> 
</browsers> 

ブラウザ定義ファイルは、.browser拡張子で、ウェブサイトのApp_Browsersディレクトリに配置する必要があります。それが終わっによって

は、あなたが有効/

ToolTipsDisablerAdapter.ToolTipsDisabled = testMode; 

編集]を設定することで、世界的にツールチップを無効にすることができますは、Renderメソッドではなく、PreRenderイベントにコードを置きました。これは、ポストバック間の変更を永続させないようにします(そして、無駄なツールチップ値でビューステートを詰まらせる)。