Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如果条件为';t遇见_C#_Asp.net - Fatal编程技术网

C# 如果条件为';t遇见

C# 如果条件为';t遇见,c#,asp.net,C#,Asp.net,我有一组文本框,它们需要连接字段验证。显然,它们都共享相同的验证组名称。我有一个服务条款的复选框,在点击提交按钮实际执行任何操作之前,需要选中该复选框 是否有一些C#代码会说,如果未选中此框,验证组将失败 还是有更好的办法 编辑: 我添加了一个自定义验证器,并在我的代码隐藏中使用了它。不起作用 protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args) { args

我有一组文本框,它们需要连接字段验证。显然,它们都共享相同的验证组名称。我有一个服务条款的复选框,在点击提交按钮实际执行任何操作之前,需要选中该复选框

是否有一些C#代码会说,如果未选中此框,验证组将失败

还是有更好的办法

编辑: 我添加了一个自定义验证器,并在我的代码隐藏中使用了它。不起作用

protected void CustomValidator1_ServerValidate(object source, ServerValidateEventArgs args)
{
    args.IsValid = false;
    if (cbxTerms.Checked)
        args.IsValid = true;
}

如果我要这样做,我只会使用JavaScript。加载页面时,将客户端事件处理程序附加到submit按钮。在处理程序内部检查复选框是否选中,如果选中,则返回true,否则返回false,这将取消提交。如果JavaScript被关闭,那也没关系,因为您应该进行一些服务器端验证,因为人们也可以用其他方式使用sumbit表单。

您可以执行上面所做的操作,但如果不这样检查,则返回

if (!cbxTerms.Checked) 
{requiredlabel.text="*";
return;}

您可以手动设置一个标签,告诉用户需要这个字段

斯科特·米切尔对此有一篇文章。


我认为这是一种稍有不同的方法,但我不久前用它来处理类似的情况,它似乎工作得很好。

我想出了如何做。我制作了一个文本框,给它分配了一个req字段验证器。将文本框9999px移出屏幕。在我的c#中,我说如果复选框被选中,则textbox.text=”“;在check check changed事件中,我说如果选中了复选框,则选择textbox.text=“1”;。比我能找到的任何其他解决方案都简单


编辑:最好使用隐藏字段。

如果未选中复选框,您甚至可以阻止回发

Button1.Attributes["onclick"] =
        "if (!$get('" + CheckBox1.ClientID + "').checked){alert('Agree with us,plz!');return false;}";
如果可以防止,为什么要做所有验证工作:)

或者,如果您因强制组使用无效tou而拒绝,您可以在客户端通过自己的验证:

function myStartUpValidation(group){
    var result=true;
    //Page_ClientValidate(group); to validate group
    for (var i = 0; i < Page_Validators.length; i++) { 
        if(Page_Validators[i].validationGroup==group){
        try{
            ValidatorValidate(Page_Validators[i]); //this forces validation in all groups
            if(Page_Validators[i].isvalid==false){result=false;}
            }catch(err){}
        }
    }
    return result;
}
函数myStartUpValidation(组){
var结果=真;
//页面\客户端验证(组);验证组
对于(var i=0;i

或者一个额外的验证器…

为什么不给复选框一个CustomValidator并将其添加到同一个验证组?您是否尝试过使用Custom validator?请参阅上面的编辑,我在您的试管上看到了此解决方案,但它对我不起作用。我不明白为什么。请不要在标题中添加“C#”之类的内容-请使用标签。John,谢谢你回答我的问题,你非常有帮助。但我遇到的问题是,即使使用我提供的代码,按钮使用的验证组在未选中框时也不会失败。