ASP.Net3.5Webサイトのすべてのバリデーターに「エラー」のCssClass値を持たせたい。私の最初の考えは、次のようなテーマスキンでこれを行うことでした。
<asp:CompareValidator runat="server"
CssClass="error" />
<asp:CustomValidator runat="server"
CssClass="error" />
<asp:RequiredFieldValidator runat="server"
CssClass="error" />
<belCommon:ZipCodeValidator runat="server"
CssClass="error" />
<belCommon:PhoneNumberValidator runat="server"
CssClass="error" />
これは、私が使用しているバリデーターの一部のリストにすぎません。理想的には、次のようなことをしたいと思います。
<asp:BaseValidator runat="server"
CssClass="error" />
また、すべてのバリデーターはBaseValidatorを継承しているため、これは機能すると思いますが、機能しません。すべてのバリデーターコントロールをスキンに明示的に追加せずにこれを達成する方法はありますか?
アップデート:
javascriptを使用して別のアプローチを見つけました:
Sys.Application.add_init(function(sender, args)
{
if (Page_Validators != null)
{
for (i = 0; i < Page_Validators.length; i++)
{
Page_Validators[i].className = "error";
}
}
});
ASP.Netは、検証スパンの配列であるPage_Validatorsと呼ばれるjavascript変数を生成します。このスクリプトは、それが存在するかどうかを確認してから、ループしてクラス名を設定します。これをマスターページに追加し、これまでのところ機能しています。