用户控件中的验证控件不会停止页面回发

时间:2011-01-28 13:07:55

标签: c# asp.net

我有一个asp按钮和一个包含自定义验证器的用户控件当我单击页面上不存在于usercontrol内部的按钮时,会发生用户控制客户端验证并显示有关数据输入失败的javascript方法但是当我点击javascript警告框确定按钮时,回发自动发生我想停止回发如果用户控件包含无效数据,则只有当用户控件包含有效数据时才会发生回发。

任何建议都将受到赞赏。

我已经在javascript中完成了这种类型的编码:

    function CheckTimeRangeTo_9(sender, args) {

    var e = document.getElementById('<%= ddTimeTableTo_9.ClientID %>');

    var totalToTimeInMins = CalculateTotalMinutes(e.options[e.selectedIndex].value);
    var totalFromTimeInMins = CalculateTotalMinutes(args.Value);

    if (totalToTimeInMins != 0 && totalToTimeInMins < totalFromTimeInMins) {
        alert("From time cannot be greater than to time in time slice ID 9.");
        args.IsValid = false;
        return;
    }

    args.IsValid = true;
}

2 个答案:

答案 0 :(得分:0)

您是否设置了传递给客户端验证函数的参数的IsValid属性?

<script type="text/javascript">
    function myValidator_ClientValid(sender, args) {
      var valid = false;

      // Perform validation

      args.IsValid = valid;
    }
</script>

答案 1 :(得分:0)

看来你不应该在这里退货。我的意思是函数CheckTimeRangeTo_9中的return;不应该在这里。并且args.IsValid = true;应该在其他声明中。所以,你应该尝试:

function CheckTimeRangeTo_9(sender, args) {

    var e = document.getElementById('<%= ddTimeTableTo_9.ClientID %>');

    var totalToTimeInMins = CalculateTotalMinutes(e.options[e.selectedIndex].value);
    var totalFromTimeInMins = CalculateTotalMinutes(args.Value);

    if (totalToTimeInMins != 0 && totalToTimeInMins < totalFromTimeInMins) {
        alert("From time cannot be greater than to time in time slice ID 9.");
        args.IsValid = false;        
    }
   else
   {
       args.IsValid = true;
   }    
}