代码之家  ›  专栏  ›  技术社区  ›  Remotec

ASP.NET RequiredFieldValidator自定义EvaluationFunction属性

  •  1
  • Remotec  · 技术社区  · 14 年前

    我的自定义ASP.NET需要FieldValidator呈现标记,如下所示…

    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 = ""; 
    

    但是,似乎没有办法设置 评估功能 财产。我需要这样做来调用一些自定义脚本。

    我试过以下方法。

    • 在呈现控件和呈现属性时添加新属性
    • 调用后接属性的RemoveAttribute.Add
    • 尝试通过javascript重置它。

    似乎什么都没用。

    如果我能得到一个在C代码中工作的解决方案,在呈现之前设置属性,那将是我所做的最好的解决方案。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Remotec    14 年前

    通过执行以下操作解决…

    ASP.NET验证器实际上在页面上定义了一个跨度,它是JavaScript中的一个DOM对象。然后他们向该对象添加属性。所以在ASP.NET生成的代码中会得到类似的结果。

    af1_ctl00.evaluationfunction = "RequiredFieldValidatorEvaluateIsValid";
    

    然后,您可以使用page.clientscript.register(…)在您的代码后面插入一些javascript到您的页面中执行类似的操作…

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

    验证函数现在已更改为使用自定义函数。