今天处理了点小问题,写篇原创TroubleShooting日志!
写Asp.net2.0不用Ajax怎么能显出系统性能的与众不同呢?用Asp.net自带的CustomValidator会出不少问题,
因此,我用的是Ajax的Validator。代码需要控制的操作界面如下:
需要解决的问题是:截止年度和起始年度的差,要求是0,或者是1。而且要用ValidationSummary来统一显示
录入校验的异常提示!(用javascript做hardcoding的显示结果不统一,所以放弃那个想法!)
CustomValidator校验本来就是要自己写javascript代码的,想光做设置是没希望了,Aspx里面的CustomValidator
设置如下:(只对截止年度做校验设置)
<cc2:CustomValidator ID="cvdPeriodEndYear_E" Display="None" SetFocusOnError="True" ControlToValidate="txtPeriodEndYear_E" ErrorMessage="截止年度必须大于等于起始年度!最多间隔1年!" ClientValidationFunction="CheckYear" runat="server"></cc2:CustomValidator>
Javascript的函数如下:
function CheckYear(ctl,args)
{
//替换控件的ID ,IE显示的控件ClientID是---ctl00_MainContent_dtvClassInfo_txtPeriodEndYear
var strStartID=ctl.controltovalidate.replace(/EndYear/g, "StartYear");
var txtStartYear=document.all[strStartID];
var txtEndYear=document.all[ctl.controltovalidate];
if(txtStartYear && txtEndYear)
{
var dif=txtEndYear.value-txtStartYear.value;
//学期的起始年度和截止年度之间跨度只能是1年,即:2007~2007或者2007~2008
if(dif==0 || dif==1)
{
args.IsValid=true;
}
else
{
args.IsValid=false;
}
}
}