如何有条件地停止WebForm __doPostBack()?

时间:2009-08-08 13:35:56

标签: asp.net

我需要通过onclick()运行一些脚本,尤其是复选框,以决定是否应该调用WebForm_doPostBack()。

如果我自己在myScript()中提交表单,它将不会导致另一个asp.net验证器的验证,所以我真的需要一个原生的WebForm_doPostBack()调用。

我应该处理提交表单事件还是有更多的“asp.net”方法呢?

CustomValidators不适用于复选框:)。

2 个答案:

答案 0 :(得分:0)

你不要试着简单地把你自己的验证放在这样的提交按钮上:

btnSubmit.Attributes["onclick"] += "return myValidation();";

<script>
    function myValidation()
    {
      // if you do not want to postback just return false...
      return true;
    }
</script>

编辑:您可以使用Page_ValidationActive以编程方式启用/禁用页面的客户端验证。

  

Page_ValidationActive一个布尔值   表示是否的值   应该进行验证。设置这个   关闭变量为false   客户端验证   编程。

答案 1 :(得分:0)

为了确保您自定义验证器不能使用复选框的假设不是单独处理复选框单击的唯一原因,这里有一些代码将使用ASP.NET自定义验证器验证复选框。

自定义验证程序具有ClientValidationFunction属性,该属性在调用__doPostback或提交表单时自动调用。

//The Script
function validateCheckBox(source, arguments)
{
    if(!source.checked) arguments.IsValid = false;//set IsValid property to false

}

//The Validator
<asp:CustomValidator ID="validateCheckbox" runat="server" ControlToValidate="CheckBox1" ErrorMessage="You REALLY need to check this!" Display="Static" ClientValidationFunction="validateCheckBox"/>