2010-04-28 87 views
2

我在客户端使用JS填充DropDownList并使用RequiredFieldValidator进行验证。ASP.NET验证问题 - 在客户端动态填充DropDownList

这在客户端上正常工作,但Page.IsValid始终在服务器上返回false。

这是因为选定的值在首次提供给页面时不在DropDownList中?

最简单的方法是什么? (我需要离开开启服务器验证)

回答

3

这是因为选择的值 不是在DropDownList当它是 先得页面?

是的。您可能会注意到,当您执行回发时,您的下拉列表中将不包含任何项目,并且是的,这是因为您正在客户端添加项目。您添加到客户端控件上的任何项目对于服务器来说都完全不知道。因此,您的服务器验证将始终失败,因为该字段是必需的。

事实上,客户端脚本添加项目动态地将触发EventValidation抱怨是有可能的安全问题,你就不得不设置EnableEventValidationfalse<%@ Page %>指令能够发布。

解决这个问题的最好办法是要么

  1. 生成服务器端的项目,或

  2. 不使用此服务器控件(使用常规的non-asp.net选择列表),并通过查看发布的值在服务器上手动验证它。

+0

太棒了,非常感谢。 – 2010-04-28 17:42:55