我有两个TextBoxes (textBoxA,textBoxB),都是由他们自己的RequiredFieldValidator观看的。我希望在RequiredFieldValidator有一个值(或满足某些特定条件)时,为textBoxB“启用”textBoxA。
用例:
案例1 textBoxA = "";->显示所需的字段验证消息textBoxB = "";->不显示验证消息
案例2 textBoxA =“有值”;textBoxB = "";->显示所需的字段验证消息
案例3 textBoxA =“有值”;textBoxB =“也有值”;
谢谢你的帮助!!
发布于 2009-11-10 22:57:48
在这种情况下,我将使用CustomValidator来实现textBoxB,而不是使用所需的字段验证器。在服务器端验证方法中,您可以使用这样的方法来控制验证的确切性质。
if (textBoxA.Text != string.Empty)
{
args.IsValid = textBoxB.Text != string.Empty;
}发布于 2009-11-10 23:03:49
您可能需要使用CustomValidator来完成此操作。您需要实现客户端和服务器端验证。类似的东西(从我的头顶上,未经测试)
服务器端
protected void ServerValidation (object source, ServerValidateEventArgs args)
{
if (!string.IsNullOrEmpty(textBoxA))
args.IsValid = !string.IsNullOrEmpty(textBoxB);
}客户端
function clientValidation(sender, args) {
if (args.value !== "") {
var textBoxB= document.getElementById('textBoxB');
args.IsValid = (textBoxB.value !== "");
}
return;
}发布于 2009-11-10 23:00:25
我不相信有一种声明式的方法。为此,我总是使用一个ValidatePage方法,将验证器设置为已启用或禁用,然后在结束时调用Page.Validate (然后基于Page.IsValid继续或呈现)。
所以,要么
validator2.IsEnabled = textBoxA.Text.Trim().Length > 0或者类似的东西。
那是伪代码.我已经有一段时间没做ASP.NET了。
https://stackoverflow.com/questions/1711819
复制相似问题