我有一个Asp.Net 转发器,其中包含一个文本框和栏。我需要增加客户端验证,证实当框检查,该文本只能接受一个值为零,或空白。

我想用一个或多个的Asp.Net's验证控制来实现这一点,提供一致的显示客户端的错误(服务器的端错误的处理方式由另一个子系统)。

Asp:CompareValidator似乎没有足够的灵活性来执行这种比较复杂的,所以我离开寻找Asp:CustomValidator.

这问题我跑到的是,似乎并没有以任何方式通过的自定义的信息进行验证功能。这是一个问题,因为ClientIds的框和文本不知道我在运行(作为他们的一部分,一个中继器)。

所以...我的选项似乎是:

  1. 通过的文本框和框CustomValidator以某种方式(似乎不可能)。
  2. 找到文本通过基于JavaScript在辩论过在通过CustomValidator.这是甚至有可能,什么ClientId正在暧昧?
  3. 忘了验证完全,这些定义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");
}

...或者类似的东西。我没有代码掉我的头顶。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top