我正在编写一个DateValidator控件,以作为日期的所有类型的验证器。
它将作为必需的验证器,最小/最大验证器和范围验证器,用于客户端的日期比较。
总而言之,我已经编写了它并且它的功能:在ASPX页面中。
出于某种原因,当将其添加到ASCX用户控件中以用作模板时,它不会呈现所需的<span>
标记,因此在检查以确保控件存在之前生成JavaScript空引用验证仍在继续。
我的类继承BaseValidator
,因此不会override RenderChildControls
,因为我不需要修改输出。要添加我的自定义javascript,我使用OnPreRender
方法将RegisterExpandoAttributes
方法用于控件,但由于控件(span标记)从未呈现,因此无法在ASCX中触发。
有没有人遇到过这个问题,如果有的话,你做了什么来修复它?
编辑:
好的,又过了3个小时,我注意到一条非常重要的缺失: 在ASPX页面内运行时,它出现在HTML:
中<script type="text/javascript">
//<![CDATA[
var Page_ValidationSummaries = new Array(document.getElementById("cal"));
var Page_Validators = new Array(document.getElementById("valTest"));
//]]>
</script>
但是在ASPX中的ASCX用户控件中:
<script type="text/javascript">
//<![CDATA[
var Page_ValidationSummaries = new Array(document.getElementById("uc1_cal"));
//]]>
</script>
如您所见,仅识别验证摘要,而不是继承自BaseValidator的CustomValidator类。如果我能解决它为什么会解决问题。令人沮丧。
答案 0 :(得分:1)
也许您应该考虑使用Excentrics World's free calendar popup。我认为它具有您描述的所有功能,并且已经构建完毕。
答案 1 :(得分:0)
如果您使用的是模板,请调用InstantiateIn()方法....