使用客户端脚本使用PeterBlum DifferenceValidator评估月份差异

时间:2009-10-19 15:27:40

标签: asp.net validation peterblum

问题:

我在整个项目中使用Peter Blum的专业验证控件(http://www.peterblum.com/DES/MoreValidators.aspx),并且遇到了应该在客户端进行的验证,而不是回到服务器。屏幕需要向服务器发送两个日期(月/年),一个用于开始日期,一个用于结束日期。使用Peter的MonthYearTextBox(http://www.peterblum.com/DES/DemoMoreDAT.aspx#MYTB),日期只是月/年。两个日期相隔不得超过3个月(请注意我没有说相隔90天)。

这是最终目标:

用户进入屏幕以运行报告。系统会提示他们输入开始日期(月/年)和结束日期。这些日期将发送到服务器,以便可以为此日期范围内的项目生成报告。用户只能在任何3个月内运行此报告。

我做了什么:

我开始使用Peter的Validation And More软件包中的DifferenceValidator。在这样做的时候,我设定了我预计为90天的差异,但是很快意识到7/2009 - 10/2009是3个月的差异(这是允许的)但是它是92天的差异(在验证者之外)范围)。

问题:

有没有办法可以覆盖客户端函数中的评估函数,以便我可以比较正在评估的日期的月份部分?

谢谢,

Scott Blue

1 个答案:

答案 0 :(得分:1)

是的。这是一个Javascript示例:

function ValidateDateRange(cond)
{
    var p = DES_GetById(cond.IDToEval).value; // Get the value of the control you're evaluating
    if (p == undefined || p.length == 0) return 1;

    // Perform custom validation here
    // return 1 if valid, or return 0 if invalid
}

您必须指定CustomEvalFunctionName =“ValidateDateRange”才能使其正常工作。

我相信所有不同的Peter Blum Validation控件都支持CustomEvalFunctionName。