2010-11-28 17 views
1

マイカスタムASP.NetのRequiredFieldValidatorは、このようなマークアップをレンダリングし...ASP.NetのRequiredFieldValidatorカスタム評価関数プロパティ

var af1_ctl00 = document.all ? document.all["af1_ctl00"] : document.getElementById("af1_ctl00"); 
af1_ctl00.controltovalidate = "af1_af1_txt"; 
af1_ctl00.display = "None"; 
af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; 
af1_ctl00.initialvalue = ""; 

はしかし、評価関数プロパティを設定する方法はないようです。カスタムスクリプトを呼び出すには、これを行う必要があります。

Iveは以下の方法を試しました。コントロールがレンダリングされるときと属性ではJavaScriptを経由して、それをリセットしようとAttributes.Add

  • 続いRemoveAttributeを呼び出す
  • をレンダリングしているときに、新しい属性を追加する

    何も動いていないようにみえ。

    私が行っていることに対して、レンダリング前に属性を設定するためのC#コードで動作するソリューションを得ることができます。

    次のようにして解決
  • +0

    私の答えはhttp://stackoverflow.com/questions/792858/how-do-i-hook-up-javascript-to-my-customvalidator-control-in-net/37150996#37150996 –

    答えて

    1

    ....

    ASP.Netは、実際にJavaScriptでDOMオブジェクトである、ページ上のスパンを定義するバリ。次に、そのオブジェクトにプロパティを追加します。したがって、ASP.Netによって生成されたコードでは、このようなものが得られます。あなたはその後、

    function NewValidationFunction() { 
        return (1 == 1); 
    } 
    
    var val = document.getElementById('af1_ct100'); 
    val.evaluationfunction = NewValidationFunction; 
    

    ...背後にあるコード内で使用してこのPage.ClientScript.Register(...)のような何かをあなたのページにバリデーション機能をいくつかのJavaScriptを注入することができ

    af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid"; 
    

    カスタム関数を使用するように変更されました。