是否有一个优雅的方式,以比较一个框和文使用ASP.NET 验证程序?
-
01-07-2019 - |
题
我有一个Asp.Net 转发器,其中包含一个文本框和栏。我需要增加客户端验证,证实当框检查,该文本只能接受一个值为零,或空白。
我想用一个或多个的Asp.Net's验证控制来实现这一点,提供一致的显示客户端的错误(服务器的端错误的处理方式由另一个子系统)。
Asp:CompareValidator似乎没有足够的灵活性来执行这种比较复杂的,所以我离开寻找Asp:CustomValidator.
这问题我跑到的是,似乎并没有以任何方式通过的自定义的信息进行验证功能。这是一个问题,因为ClientIds的框和文本不知道我在运行(作为他们的一部分,一个中继器)。
所以...我的选项似乎是:
- 通过的文本框和框CustomValidator以某种方式(似乎不可能)。
- 找到文本通过基于JavaScript在辩论过在通过CustomValidator.这是甚至有可能,什么ClientId正在暧昧?
- 忘了验证完全,这些定义JavaScript(允许我通过这两个ClientIds一个自定义功能)。
任何想法什么可能一个更好的方式执行这个吗?
解决方案
我认为最好的方法就是继承BaseValidator在一个新的类,并通过这些标识,以你的控制的属性。你应该能够解决Id在你的验证程序,在不知道的全部客户的侧ID是在运行时生成。你应该得到的数据验证服务器上第一,在客户的第二个。
其他提示
你不能把CustomValidator内继?如果不是,您可以创建它时动态中继定和用户FindControl()
protected MyDataBound(object sender, RepeaterItemEventArgs e) {
(CheckBox)cb = (CheckBox)e.Item.FindControl("myCheckboxName");
(TextBox)tb = (TextBox)e.Item.FindControl("myTextBox");
}
...或者类似的东西。我没有代码掉我的头顶。
不隶属于 StackOverflow